mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
Decompiler for-loops
This commit is contained in:
parent
1539318b59
commit
b2bc1eb019
25 changed files with 726 additions and 68 deletions
|
@ -57,6 +57,7 @@ OptionDatabase::OptionDatabase(Architecture *g)
|
|||
registerOption(new OptionErrorTooManyInstructions());
|
||||
registerOption(new OptionDefaultPrototype());
|
||||
registerOption(new OptionInferConstPtr());
|
||||
registerOption(new OptionForLoops());
|
||||
registerOption(new OptionInline());
|
||||
registerOption(new OptionNoReturn());
|
||||
registerOption(new OptionStructAlign());
|
||||
|
@ -245,6 +246,24 @@ string OptionInferConstPtr::apply(Architecture *glb,const string &p1,const strin
|
|||
return res;
|
||||
}
|
||||
|
||||
/// \class OptionForLoops
|
||||
/// \brief Toggle whether the decompiler attempts to recover \e for-loop variables
|
||||
///
|
||||
/// Setting the first parameter to "on" causes the decompiler to search for a suitable loop variable
|
||||
/// controlling iteration of a \e while-do block. The \e for-loop displays the following on a single line:
|
||||
/// - loop variable initializer (optional)
|
||||
/// - loop condition
|
||||
/// - loop variable incrementer
|
||||
///
|
||||
string OptionForLoops::apply(Architecture *glb,const string &p1,const string &p2,const string &p3) const
|
||||
|
||||
{
|
||||
glb->analyze_for_loops = onOrOff(p1);
|
||||
|
||||
string res = "Recovery of for-loops is " + p1;
|
||||
return res;
|
||||
}
|
||||
|
||||
/// \class OptionInline
|
||||
/// \brief Mark/unmark a specific function as \e inline
|
||||
///
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue