decompiler
1.0.0
|
Root class for all decompiler specific commands. More...
#include <ifacedecomp.hh>
Public Member Functions | |
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 IfaceData * | createData (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. | |
virtual void | execute (istream &s)=0 |
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... | |
Protected Member Functions | |
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 | |
IfaceStatus * | status |
The console owning this command. | |
IfaceDecompData * | dcp |
Data common to decompiler commands. | |
Root class for all decompiler specific commands.
Commands share the data object IfaceDecompData and are capable of iterating over all functions in the program/architecture.
|
inlinevirtual |
Create a specialized data object for this command (and its module)
This method is only called once per module
Implements ghidra::IfaceCommand.
|
inlinevirtual |
Get the formal module name to which this command belongs.
Commands in the same module share data through their registered IfaceData object
Implements ghidra::IfaceCommand.
|
protected |
Iterate over all functions in a given scope.
Runs over every function in the scope calling iterationCallback().
scope | is the given scope |
References ghidra::Scope::begin(), ghidra::Scope::end(), and ghidra::FunctionSymbol::getFunction().
void ghidra::IfaceDecompCommand::iterateFunctionsAddrOrder | ( | void | ) |
Iterate command over all functions in all scopes.
Scopes are traversed depth-first, then within a scope, functions are traversed in address order.
void ghidra::IfaceDecompCommand::iterateFunctionsLeafOrder | ( | void | ) |
Iterate command over all functions in a call-graph traversal.
Traversal is based on the current CallGraph for the program. Child functions are traversed before their parents.
|
protected |
Iterate recursively over all functions in given scope.
Runs over every function in the scope, or any sub-scope , calling iterationCallback()
scope | is the given scope |
References ghidra::Scope::childrenBegin(), ghidra::Scope::childrenEnd(), and ghidra::Scope::isGlobal().
|
inlinevirtual |
Perform the per-function aspect of this command.
fd | is the particular function to operate on |
Reimplemented in ghidra::IfcCallGraphList, ghidra::IfcCallGraphBuild, ghidra::IfcDuplicateHash, ghidra::IfcPrintInputsAll, ghidra::IfcProducePrototypes, and ghidra::IfcProduceC.
|
inlinevirtual |
Associate a specific data object with this command.
root | is the interface object this command is registered with |
data | is the data object the command should use |
Implements ghidra::IfaceCommand.