java.lang.Object | |
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.simulator.CMethodSimulator |
Pseudo-C method simulator.
Note that a simulator serves for one method only, and the simulation might happen only once.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
CMethodSimulator(ICMethod method, CEnvironment environment) | |||||||||||
CMethodSimulator(ICMethod method, CEnvironment environment, int traceMaxSize) | |||||||||||
CMethodSimulator(ICMethod method, CEnvironment environment, boolean strictMode) |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
static boolean |
areEquivalentSimulations(CSimulationLogger simLogger1, CSimulationLogger simLogger2)
Check if two simulations are equivalent, i.e.
| ||||||||||
List<ICStatement> | getStmtsFlatList() | ||||||||||
CSimulationLogger |
simulate()
Run the simulation from an empty input state.
| ||||||||||
CSimulationLogger |
simulate(CMethodState inputState)
Run the simulation from the given input state.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
strictMode | if true simulator will follow strict C emulation, otherwise some tweaks will be made to ensure simulation can be done even when AST contains errors (e.g. dereferencement of non-pointers) |
---|
Check if two simulations are equivalent, i.e. if:
areEquivalent(CMethodState, CMethodState, boolean, boolean)
areEquivalent(CEnvironment, CEnvironment)
Run the simulation from the given input state.