decompiler  1.0.0
Public Member Functions | Static Public Member Functions | List of all members
ghidra::IfcCallFixup Class Reference

Add a new call fix-up to the program: fixup call ... More...

Inheritance diagram for ghidra::IfcCallFixup:
ghidra::IfaceDecompCommand ghidra::IfaceCommand

Public Member Functions

virtual void execute (istream &s)
 
- Public Member Functions inherited from ghidra::IfaceDecompCommand
virtual void setData (IfaceStatus *root, IfaceData *data)
 Associate a specific data object with this command. More...
 
virtual string getModule (void) const
 Get the formal module name to which this command belongs. More...
 
virtual IfaceDatacreateData (void)
 Create a specialized data object for this command (and its module) More...
 
virtual void iterationCallback (Funcdata *fd)
 Perform the per-function aspect of this command. More...
 
void iterateFunctionsAddrOrder (void)
 Iterate command over all functions in all scopes. More...
 
void iterateFunctionsLeafOrder (void)
 Iterate command over all functions in a call-graph traversal. More...
 
- Public Member Functions inherited from ghidra::IfaceCommand
virtual ~IfaceCommand (void)
 Destructor.
 
void addWord (const string &temp)
 Add a token to the command line string associated with this command. More...
 
void removeWord (void)
 Remove the last token from the associated command line string.
 
const string & getCommandWord (int4 i) const
 Get the i-th command token.
 
void addWords (const vector< string > &wordlist)
 Add words to the associated command line string.
 
int4 numWords (void) const
 Return the number of tokens in the command line string.
 
void commandString (string &res) const
 Get the complete command line string. More...
 
int4 compare (const IfaceCommand &op2) const
 Order two commands by their command line strings. More...
 

Static Public Member Functions

static void readPcodeSnippet (istream &s, string &name, string &outname, vector< string > &inname, string &pcodestring)
 Scan a single-line p-code snippet declaration from the given stream. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ghidra::IfaceDecompCommand
void iterateScopesRecursive (Scope *scope)
 Iterate recursively over all functions in given scope. More...
 
void iterateFunctionsAddrOrder (Scope *scope)
 Iterate over all functions in a given scope. More...
 
- Protected Attributes inherited from ghidra::IfaceDecompCommand
IfaceStatusstatus
 The console owning this command.
 
IfaceDecompDatadcp
 Data common to decompiler commands.
 

Detailed Description

Add a new call fix-up to the program: fixup call ...

Create a new call fixup-up for the architecture/program, suitable for replacing called functions. The fix-up is specified as a function-style declarator, which also provides the formal name of the fix-up. A "void" return-type and empty parameter list must be given.

fixup call void myfixup1() { EAX = 0; RBX = RCX + RDX + 1; }

Member Function Documentation

◆ execute()

void ghidra::IfcCallFixup::execute ( istream &  s)
virtual

Execute this command. Additional state can be read from the given command line stream. Otherwise, the command gets its data from its registered IfaceData object

Parameters
sis the input stream from the command line

Implements ghidra::IfaceCommand.

References ghidra::LowlevelError::explain, ghidra::IfaceCapability::name, and ghidra::InjectPayload::printTemplate().

◆ readPcodeSnippet()

void ghidra::IfcCallFixup::readPcodeSnippet ( istream &  s,
string &  name,
string &  outname,
vector< string > &  inname,
string &  pcodestring 
)
static

Scan a single-line p-code snippet declaration from the given stream.

A declarator is scanned first, providing a name to associate with the snippet, as well as potential names of the formal output Varnode and input Varnodes. The body of the snippet is then surrounded by '{' and '}' The snippet name, input/output names, and the body are passed back to the caller.

Parameters
sis the given stream to scan
namepasses back the name of the snippet
outnamepasses back the formal output parameter name, or is empty
innamepasses back an array of the formal input parameter names
pcodestringpasses back the snippet body

Referenced by ghidra::IfcCallOtherFixup::execute().


The documentation for this class was generated from the following files: