|
Ghidra 11.4.2
Ghidra internal decompiler documentation.
|
Context needed to emit a p-code injection as a full set of p-code operations. More...
#include <pcodeinject.hh>
Public Member Functions | |
| virtual | ~InjectContext (void) |
| Destructor. | |
| virtual void | clear (void) |
| Release resources (from last injection) | |
| virtual void | encode (Encoder &encoder) const =0 |
| Encode this context to a stream as a <context> element. | |
Public Attributes | |
| Architecture * | glb |
| Architecture associated with the injection. | |
| Address | baseaddr |
| Address of instruction causing inject. | |
| Address | nextaddr |
| Address of following instruction. | |
| Address | calladdr |
| If the instruction being injected is a call, this is the address being called. | |
| vector< VarnodeData > | inputlist |
| Storage location for input parameters. | |
| vector< VarnodeData > | output |
| Storage location for output. | |
Context needed to emit a p-code injection as a full set of p-code operations.
P-code injection works by passing a pre-built template of p-code operations (ConstructTpl) to an emitter (PcodeEmit), which makes the final resolution SLEIGH concepts like inst_next to concrete Varnodes. This class contains the context dependent data to resolve:
|
pure virtual |
Encode this context to a stream as a <context> element.
| encoder | is the stream encoder |
Implemented in ghidra::InjectContextGhidra.
Referenced by ghidra::ArchitectureGhidra::getPcodeInject().