Package ghidra.pcode.emu
Class DefaultPcodeThread.PcodeThreadExecutor<T>
java.lang.Object
ghidra.pcode.exec.PcodeExecutor<T>
ghidra.pcode.emu.DefaultPcodeThread.PcodeThreadExecutor<T>
- Type Parameters:
- T- the type of variables in the emulator
- Enclosing class:
- DefaultPcodeThread<T>
An executor for the p-code thread
 
 
This executor checks for thread suspension and updates the program counter register upon execution of (external) branches.
- 
Field SummaryFieldsFields inherited from class ghidra.pcode.exec.PcodeExecutorarithmetic, language, pc, pcSize, reason, state
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidbranchToAddress(PcodeOp op, Address target) Extension point: Called when execution branches to a target addressprotected voidcheckLoad(AddressSpace space, T offset, int size) Extension point: logic preceding a loadprotected voidcheckStore(AddressSpace space, T offset, int size) Extension point: logic preceding a storevoidexecuteSleigh(String source) Compile and execute a block of SleighGet the thread owning this executorprotected voidonMissingUseropDef(PcodeOp op, PcodeFrame frame, String opName, PcodeUseropLibrary<T> library) Extension point: Behavior when a userop definition was not found in the libraryvoidstepOp(PcodeOp op, PcodeFrame frame, PcodeUseropLibrary<T> library) Step one p-code opMethods inherited from class ghidra.pcode.exec.PcodeExecutorbadOp, begin, begin, branchInternal, branchToOffset, branchToOffset, checkInjectedTarget, doExecuteBranch, doExecuteIndirectBranch, execute, execute, executeBinaryOp, executeBranch, executeCall, executeCallother, executeConditionalBranch, executeIndirectBranch, executeIndirectCall, executeLoad, executeReturn, executeStore, executeUnaryOp, finish, getArithmetic, getBranchTarget, getCallotherOpNumber, getConditionalBranchPredicate, getIndirectBranchTarget, getIntConst, getLanguage, getLoadStoreOffset, getLoadStoreSpace, getReason, getState, getStoreValue, getUseropName, skip, step
- 
Field Details- 
thread
 
- 
- 
Constructor Details- 
PcodeThreadExecutorConstruct the executor- Parameters:
- thread- the thread this executor supports
- See Also:
 
 
- 
- 
Method Details- 
executeSleighDescription copied from class:PcodeExecutorCompile and execute a block of Sleigh- Overrides:
- executeSleighin class- PcodeExecutor<T>
- Parameters:
- source- the Sleigh source
 
- 
stepOpDescription copied from class:PcodeExecutorStep one p-code op- Overrides:
- stepOpin class- PcodeExecutor<T>
- Parameters:
- op- the op
- frame- the current frame
- library- the library, invoked in case of- PcodeOp.CALLOTHER
 
- 
checkLoadDescription copied from class:PcodeExecutorExtension point: logic preceding a load- Overrides:
- checkLoadin class- PcodeExecutor<T>
- Parameters:
- space- the address space to be loaded from
- offset- the offset about to be loaded from
- size- the size in bytes to be loaded
 
- 
checkStoreDescription copied from class:PcodeExecutorExtension point: logic preceding a store- Overrides:
- checkStorein class- PcodeExecutor<T>
- Parameters:
- space- the address space to be stored to
- offset- the offset about to be stored to
- size- the size in bytes to be stored
 
- 
branchToAddressDescription copied from class:PcodeExecutorExtension point: Called when execution branches to a target addressNOTE: This is not called for the fall-through case - Overrides:
- branchToAddressin class- PcodeExecutor<T>
- Parameters:
- target- the target address
 
- 
onMissingUseropDefprotected void onMissingUseropDef(PcodeOp op, PcodeFrame frame, String opName, PcodeUseropLibrary<T> library) Description copied from class:PcodeExecutorExtension point: Behavior when a userop definition was not found in the libraryThe default behavior is to throw a SleighLinkException.- Overrides:
- onMissingUseropDefin class- PcodeExecutor<T>
- Parameters:
- op- the op
- frame- the frame
- opName- the name of the p-code userop
- library- the library
 
- 
getThreadGet the thread owning this executor- Returns:
- the thread
 
 
-