Boomerang Class Reference

#include <include/boomerang.h>

List of all members.


Detailed Description

Controls the loading, decoding, decompilation and code generation for a program.

This is the main class of the decompiler.

Definition at line 90 of file boomerang.h.

Public Member Functions

void addWatcher (Watcher *watcher)
 Add a Watcher to the set of Watchers for this Boomerang object.
void alert_baddecode (ADDRESS pc)
 Alert the watchers of a bad decode of an instruction at pc.
void alert_complete ()
 Alert the watchers that decompilation has completed.
virtual void alert_considering (Proc *parent, Proc *p)
void alert_decode (Proc *p, ADDRESS pc, ADDRESS last, int nBytes)
 Alert the watchers we have succesfully decoded this function.
void alert_decode (ADDRESS pc, int nBytes)
 Alert the watchers we are currently decoding nBytes bytes at address pc.
virtual void alert_decompile_afterPropagate (UserProc *p, int depth)
virtual void alert_decompile_afterRemoveStmts (UserProc *p, int depth)
virtual void alert_decompile_beforePropagate (UserProc *p, int depth)
virtual void alert_decompile_debug_point (UserProc *p, const char *description)
virtual void alert_decompile_SSADepth (UserProc *p, int depth)
virtual void alert_decompiling (UserProc *p)
void alert_end_decode ()
 Alert the watchers we finished decoding.
virtual void alert_end_decompile (UserProc *p)
void alert_load (Proc *p)
 Alert the watchers we have loaded the Proc.
void alert_new (Proc *p)
 Alert the watchers we have found a new Proc.
virtual void alert_proc_status_change (UserProc *p)
void alert_remove (Proc *p)
 Alert the watchers we have removed a Proc.
void alert_start_decode (ADDRESS start, int nBytes)
 Alert the watchers we are starting to decode.
virtual void alert_start_decompile (UserProc *p)
void alert_update_signature (Proc *p)
 Alert the watchers we have updated this Procs signature.
int commandLine (int argc, const char **argv)
 The main function for the command line mode.
int decompile (const char *fname, const char *pname=NULL)
 The program will be subsequently be loaded, decoded, decompiled and written to a source file.
HLLCodegetHLLCode (UserProc *p=NULL)
 Returns the HLLCode for the given proc.
const std::string & getOutputPath ()
 Returns the path to where the output files are saved.
const std::string & getProgPath ()
 Get the path to the Boomerang executable.
ProgloadAndDecode (const char *fname, const char *pname=NULL)
 Loads the executable file and decodes it.
ProgloadFromXML (const char *fname)
Loglog ()
 Returns the Log object associated with the object.
void logTail ()
 Prints the last lines of the log file.
void objcDecode (std::map< std::string, ObjcModule > &modules, Prog *prog)
 Adds information about functions and classes from Objective-C modules to the Prog object.
void persistToXML (Prog *prog)
void setLogger (Log *l)
bool setOutputDirectory (const char *path)
 Sets the directory in which Boomerang creates its output files.
void setOutputPath (const char *p)
 Set the path where the output files are saved.
void setProgPath (const char *p)
 Set the path to the Boomerang executable.

Static Public Member Functions

static Boomerangget ()
static char * getVersionStr ()

Public Attributes

bool assumeABI
 Assume ABI compliance.
bool conTypeAnalysis
bool debugDecoder
bool debugGen
bool debugLiveness
bool debugProof
bool debugSwitch
bool debugTA
bool debugUnused
bool decodeMain
 When true, attempt to decode main, all children, and all procs.
bool decodeThruIndCall
bool dfaTypeAnalysis
const char * dotFile
 The file in which the dotty graph is saved.
bool dumpXML
std::vector< ADDRESSentrypoints
 A vector which contains all know entrypoints for the Prog.
bool experimental
 Activate experimental code. Caution!
bool generateCallGraph
bool generateSymbols
bool loadBeforeDecompile
int maxMemDepth
int minsToStopAfter
bool noBranchSimplify
bool noChangeSignatures
bool noDataflow
bool noDecodeChildren
bool noDecompile
bool noGlobals
bool noLocals
bool noParameterNames
bool noPromote
bool noProve
bool noRemoveLabels
bool noRemoveNull
bool noRemoveReturns
int numToPropagate
std::ofstream * ofsIndCallReport
bool printAST
bool printRtl
int propMaxDepth
 Max depth of expression that will be propagated to more than one dest.
bool propOnlyToAll
bool saveBeforeDecompile
bool stopAtDebugPoints
bool stopBeforeDecompile
std::vector< std::string > symbolFiles
 A vector containing the names off all symbolfiles to load.
std::map< ADDRESS, std::string > symbols
 A map to find a name by a given address.
bool traceDecoder
bool vFlag

Private Member Functions

 Boomerang ()
 Initializes the Boomerang object.
int cmdLine ()
 Displays a command line and processes the commands entered.
void help ()
 Prints help about the command line switches.
void helpcmd ()
 Prints help for the interactive mode.
int parseCmd (int argc, const char **argv)
 Parse and execute a command supplied in interactive mode.
int splitLine (char *line, char ***pargv)
 Splits a string up in different words.
void usage ()
 Prints a short usage statement.
virtual ~Boomerang ()
 The destructor is virtual to force this object to be created on the heap (with new).

Private Attributes

Loglogger
 Takes care of the log messages.
std::string outputPath
 The path where all output files are created.
std::string progPath
 String with the path to the boomerang executable.
std::set< Watcher * > watchers
 The watchers which are interested in this decompilation.

Static Private Attributes

static Boomerangboomerang = NULL


Constructor & Destructor Documentation

Boomerang::Boomerang  )  [private]
 

Initializes the Boomerang object.

The default settings are:

  • All options disabled
  • Infinite propagations
  • A maximum memory depth of 99
  • The path to the executable is "./"
  • The output directory is "./output/"

Definition at line 42 of file testExpStubs.cpp.

Referenced by get().

virtual Boomerang::~Boomerang  )  [inline, private, virtual]
 

The destructor is virtual to force this object to be created on the heap (with new).

Definition at line 117 of file boomerang.h.


Member Function Documentation

void Boomerang::addWatcher Watcher watcher  )  [inline]
 

Add a Watcher to the set of Watchers for this Boomerang object.

Definition at line 148 of file boomerang.h.

References watchers.

Referenced by DecompilerThread::run().

void Boomerang::alert_baddecode ADDRESS  pc  )  [inline]
 

Alert the watchers of a bad decode of an instruction at pc.

Definition at line 180 of file boomerang.h.

References watchers.

Referenced by FrontEnd::processProc().

void Boomerang::alert_complete  )  [inline]
 

Alert the watchers that decompilation has completed.

Definition at line 155 of file boomerang.h.

References watchers.

virtual void Boomerang::alert_considering Proc parent,
Proc p
[inline, virtual]
 

Definition at line 232 of file boomerang.h.

References watchers.

Referenced by UserProc::decompile().

void Boomerang::alert_decode Proc p,
ADDRESS  pc,
ADDRESS  last,
int  nBytes
[inline]
 

Alert the watchers we have succesfully decoded this function.

Definition at line 185 of file boomerang.h.

References watchers.

void Boomerang::alert_decode ADDRESS  pc,
int  nBytes
[inline]
 

Alert the watchers we are currently decoding nBytes bytes at address pc.

Definition at line 175 of file boomerang.h.

References watchers.

Referenced by FrontEnd::processProc().

virtual void Boomerang::alert_decompile_afterPropagate UserProc p,
int  depth
[inline, virtual]
 

Definition at line 220 of file boomerang.h.

References watchers.

virtual void Boomerang::alert_decompile_afterRemoveStmts UserProc p,
int  depth
[inline, virtual]
 

Definition at line 224 of file boomerang.h.

References watchers.

Referenced by UserProc::remUnusedStmtEtc().

virtual void Boomerang::alert_decompile_beforePropagate UserProc p,
int  depth
[inline, virtual]
 

Definition at line 216 of file boomerang.h.

References watchers.

void Boomerang::alert_decompile_debug_point UserProc p,
const char *  description
[virtual]
 

Definition at line 1234 of file boomerang.cpp.

References StatementList::begin(), StatementList::end(), Proc::getName(), UserProc::getStatements(), NULL, UserProc::print(), and stopAtDebugPoints.

Referenced by UserProc::addImplicitAssigns(), UserProc::branchAnalysis(), UserProc::dfaTypeAnalysis(), UserProc::earlyDecompile(), UserProc::findFinalParameters(), UserProc::findPreserveds(), UserProc::fixCallAndPhiRefs(), UserProc::fromSSAform(), UserProc::initialiseDecompile(), UserProc::mapExpressionsToLocals(), UserProc::mapLocalsAndParams(), UserProc::middleDecompile(), UserProc::removeRedundantParameters(), UserProc::removeRedundantReturns(), UserProc::removeUnusedLocals(), UserProc::remUnusedStmtEtc(), UserProc::reverseStrengthReduction(), and UserProc::updateArguments().

virtual void Boomerang::alert_decompile_SSADepth UserProc p,
int  depth
[inline, virtual]
 

Definition at line 212 of file boomerang.h.

References watchers.

Referenced by UserProc::middleDecompile().

virtual void Boomerang::alert_decompiling UserProc p  )  [inline, virtual]
 

Definition at line 236 of file boomerang.h.

References watchers.

Referenced by UserProc::fromSSAform(), UserProc::recursionGroupAnalysis(), UserProc::removeRedundantReturns(), UserProc::remUnusedStmtEtc(), and UserProc::updateArguments().

void Boomerang::alert_end_decode  )  [inline]
 

Alert the watchers we finished decoding.

Definition at line 200 of file boomerang.h.

References watchers.

virtual void Boomerang::alert_end_decompile UserProc p  )  [inline, virtual]
 

Definition at line 228 of file boomerang.h.

References watchers.

void Boomerang::alert_load Proc p  )  [inline]
 

Alert the watchers we have loaded the Proc.

Definition at line 190 of file boomerang.h.

References watchers.

void Boomerang::alert_new Proc p  )  [inline]
 

Alert the watchers we have found a new Proc.

Definition at line 160 of file boomerang.h.

References watchers.

Referenced by FrontEnd::processProc().

virtual void Boomerang::alert_proc_status_change UserProc p  )  [inline, virtual]
 

Definition at line 208 of file boomerang.h.

References watchers.

Referenced by UserProc::setStatus().

void Boomerang::alert_remove Proc p  )  [inline]
 

Alert the watchers we have removed a Proc.

Definition at line 165 of file boomerang.h.

References watchers.

Referenced by Prog::removeProc().

void Boomerang::alert_start_decode ADDRESS  start,
int  nBytes
[inline]
 

Alert the watchers we are starting to decode.

Definition at line 195 of file boomerang.h.

References watchers.

Referenced by FrontEnd::decode().

virtual void Boomerang::alert_start_decompile UserProc p  )  [inline, virtual]
 

Definition at line 204 of file boomerang.h.

References watchers.

Referenced by UserProc::initialiseDecompile().

void Boomerang::alert_update_signature Proc p  )  [inline]
 

Alert the watchers we have updated this Procs signature.

Definition at line 170 of file boomerang.h.

References watchers.

Referenced by Prog::rereadLibSignatures().

int Boomerang::cmdLine  )  [private]
 

Displays a command line and processes the commands entered.

Return values:
0 stdin was closed.
2 The user typed exit or quit.

Definition at line 643 of file boomerang.cpp.

References parseCmd(), and splitLine().

int Boomerang::commandLine int  argc,
const char **  argv
 

The main function for the command line mode.

Parses switches and runs decompile(filename).

Returns:
Zero on success, nonzero on faillure.

Definition at line 664 of file boomerang.cpp.

References addr(), assumeABI, conTypeAnalysis, debugDecoder, debugGen, debugLiveness, debugProof, debugSwitch, debugTA, debugUnused, decodeMain, decodeThruIndCall, dfaTypeAnalysis, dotFile, dumpXML, entrypoints, experimental, generateCallGraph, generateSymbols, getOutputPath(), help(), helpcmd(), loadBeforeDecompile, maxMemDepth, minsToStopAfter, noBranchSimplify, noDataflow, noDecodeChildren, noDecompile, noGlobals, noLocals, noParameterNames, noPromote, noRemoveLabels, noRemoveNull, noRemoveReturns, numToPropagate, ofsIndCallReport, outputPath, printAST, printRtl, progPath, propMaxDepth, propOnlyToAll, saveBeforeDecompile, stopAtDebugPoints, stopBeforeDecompile, symbolFiles, symbols, traceDecoder, usage(), VERSION, and vFlag.

int Boomerang::decompile const char *  fname,
const char *  pname = NULL
 

The program will be subsequently be loaded, decoded, decompiled and written to a source file.

After decompilation the elapsed time is printed to std::cerr.

Parameters:
fname The name of the file to load.
pname The name that will be given to the Proc.
Returns:
Zero on success, nonzero on faillure.

Definition at line 1119 of file boomerang.cpp.

References Prog::decompile(), dotFile, Prog::generateDotFile(), Prog::getFirstProc(), Prog::getNextProc(), loadAndDecode(), loadBeforeDecompile, minsToStopAfter, NULL, XMLProgParser::parse(), XMLProgParser::persistToXML(), printAST, saveBeforeDecompile, stopBeforeDecompile, and stopProcess().

static Boomerang* Boomerang::get  )  [inline, static]
 

Returns:
The global boomerang object. It will be created if it didn't already exist.

Definition at line 122 of file boomerang.h.

References Boomerang(), and boomerang.

Referenced by CHLLCode::AddAssignmentStatement(), UserProc::addImplicitAssigns(), CHLLCode::AddReturnStatement(), UserProc::branchAnalysis(), SparcFrontEnd::case_CALL(), Decompiler::changeOutputPath(), FrontEnd::decode(), FrontEnd::decodeFragment(), UserProc::decompile(), UserProc::dfaTypeAnalysis(), Statement::doPropagateTo(), UserProc::earlyDecompile(), UserProc::findFinalParameters(), UserProc::findPreserveds(), UserProc::fixCallAndPhiRefs(), Prog::fromSSAform(), UserProc::fromSSAform(), CallStatement::generateCode(), Prog::generateCode(), UserProc::generateCode(), Prog::generateDotFile(), CallStatement::getDefinitions(), SparcFrontEnd::handleCall(), UserProc::initialiseDecompile(), Cluster::makeDirs(), UserProc::mapExpressionsToLocals(), UserProc::mapLocalsAndParams(), UserProc::middleDecompile(), TargetQueue::nextAddress(), PentiumDecoder::PentiumDecoder(), PPCDecoder::PPCDecoder(), UserProc::printAnalysedXML(), Prog::printCallGraph(), Prog::printCallGraphXML(), UserProc::printDecodedXML(), Proc::printDetailsXML(), UserProc::printDFG(), UserProc::printSSAXML(), Prog::printSymbolsToFile(), UserProc::printUseGraph(), SparcFrontEnd::processProc(), FrontEnd::processProc(), BasicBlock::processSwitch(), Statement::propagateTo(), FrontEnd::readLibraryCatalog(), RTLInstDict::readSSLFile(), UserProc::recursionGroupAnalysis(), Prog::removeProc(), UserProc::removeRedundantParameters(), UserProc::removeRedundantReturns(), UserProc::removeUnusedLocals(), UserProc::remUnusedStmtEtc(), Prog::rereadLibSignatures(), UserProc::reverseStrengthReduction(), DecompilerThread::run(), BranchStatement::setCondType(), Decompiler::setNoDecodeChildren(), UserProc::setStatus(), StatementTest::setUp(), Decompiler::setUseDFTA(), Assign::simplify(), SparcDecoder::SparcDecoder(), ST20Decoder::ST20Decoder(), Cfg::structure(), TypeTest::testCompound(), StatementTest::testEmpty(), DfaTest::testMeetSize(), UserProc::updateArguments(), and TargetQueue::visit().

HLLCode * Boomerang::getHLLCode UserProc p = NULL  ) 
 

Returns the HLLCode for the given proc.

Returns:
The HLLCode for the specified UserProc.

Definition at line 27 of file testRtlStubs.cpp.

Referenced by Prog::generateCode().

const std::string& Boomerang::getOutputPath  )  [inline]
 

Returns the path to where the output files are saved.

Definition at line 143 of file boomerang.h.

References outputPath.

Referenced by commandLine(), Cluster::makeDirs(), Prog::printCallGraph(), Prog::printCallGraphXML(), and Prog::printSymbolsToFile().

const std::string& Boomerang::getProgPath  )  [inline]
 

Get the path to the Boomerang executable.

Definition at line 139 of file boomerang.h.

References progPath.

Referenced by PentiumDecoder::PentiumDecoder(), PPCDecoder::PPCDecoder(), FrontEnd::readLibraryCatalog(), SparcDecoder::SparcDecoder(), and ST20Decoder::ST20Decoder().

char * Boomerang::getVersionStr  )  [static]
 

Definition at line 1282 of file boomerang.cpp.

References VERSION.

Referenced by MainWindow::on_actionAbout_activated().

void Boomerang::help  )  [private]
 

Prints help about the command line switches.

Definition at line 146 of file boomerang.cpp.

Referenced by commandLine().

void Boomerang::helpcmd  )  [private]
 

Prints help for the interactive mode.

Definition at line 118 of file boomerang.cpp.

Referenced by commandLine().

Prog * Boomerang::loadAndDecode const char *  fname,
const char *  pname = NULL
 

Loads the executable file and decodes it.

Parameters:
fname The name of the file to load.
pname How the Prog will be named.
Returns:
A Prog object.

Definition at line 1019 of file boomerang.cpp.

References FrontEnd::AddSymbol(), FrontEnd::Load(), NULL, Prog::setFrontEnd(), and symbols.

Referenced by decompile(), and parseCmd().

Prog* Boomerang::loadFromXML const char *  fname  ) 
 

Log & Boomerang::log  ) 
 

Returns the Log object associated with the object.

Definition at line 89 of file boomerang.cpp.

References logger.

void Boomerang::logTail  ) 
 

Prints the last lines of the log file.

Definition at line 1230 of file boomerang.cpp.

References logger, and Log::tail().

void Boomerang::objcDecode std::map< std::string, ObjcModule > &  modules,
Prog prog
 

Adds information about functions and classes from Objective-C modules to the Prog object.

Parameters:
modules A map from name to the Objective-C modules.
prog The Prog object to add the information to.

Definition at line 979 of file boomerang.cpp.

References Cluster::addChild(), Prog::getRootCluster(), LOG, m, Prog::newProc(), Proc::setCluster(), and VERBOSE.

int Boomerang::parseCmd int  argc,
const char **  argv
[private]
 

Parse and execute a command supplied in interactive mode.

Parameters:
argc The number of arguments.
argv Pointers to the arguments.
Returns:
A value indicating what happened.
Return values:
0 Success
1 Faillure
2 The user exited with quit or exit

Definition at line 297 of file boomerang.cpp.

References Prog::decompile(), Prog::findProc(), Proc::isLib(), loadAndDecode(), NULL, outputPath, XMLProgParser::parse(), and XMLProgParser::persistToXML().

Referenced by cmdLine().

void Boomerang::persistToXML Prog prog  ) 
 

void Boomerang::setLogger Log l  )  [inline]
 

Definition at line 129 of file boomerang.h.

References logger.

Referenced by setOutputDirectory(), StatementTest::setUp(), TypeTest::testCompound(), StatementTest::testEmpty(), and DfaTest::testMeetSize().

bool Boomerang::setOutputDirectory const char *  path  ) 
 

Sets the directory in which Boomerang creates its output files.

The directory will be created if it doesn't exist.

Parameters:
path the path to the directory
Return values:
true Success.
false The directory could not be created.

Definition at line 960 of file boomerang.cpp.

References createDirectory(), logger, NULL, outputPath, and setLogger().

Referenced by Decompiler::changeOutputPath(), DecompilerThread::run(), and StatementTest::testEmpty().

void Boomerang::setOutputPath const char *  p  )  [inline]
 

Set the path where the output files are saved.

Definition at line 141 of file boomerang.h.

References outputPath.

void Boomerang::setProgPath const char *  p  )  [inline]
 

Set the path to the Boomerang executable.

Definition at line 137 of file boomerang.h.

References progPath.

int Boomerang::splitLine char *  line,
char ***  pargv
[private]
 

Splits a string up in different words.

use like: argc = splitLine(line, &argv);

Parameters:
[in] line the string to parse
[out] pargc &argv
Returns:
The number of words found (argc).

Definition at line 273 of file boomerang.cpp.

References NULL.

Referenced by cmdLine().

void Boomerang::usage  )  [private]
 

Prints a short usage statement.

Definition at line 109 of file boomerang.cpp.

Referenced by commandLine().


Member Data Documentation

bool Boomerang::assumeABI
 

Assume ABI compliance.

Definition at line 295 of file boomerang.h.

Referenced by commandLine().

Boomerang * Boomerang::boomerang = NULL [static, private]
 

Definition at line 92 of file boomerang.h.

Referenced by get().

bool Boomerang::conTypeAnalysis
 

Definition at line 289 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::debugDecoder
 

Definition at line 279 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::debugGen
 

Definition at line 260 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::debugLiveness
 

Definition at line 264 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::debugProof
 

Definition at line 283 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::debugSwitch
 

Definition at line 262 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::debugTA
 

Definition at line 266 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::debugUnused
 

Definition at line 284 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::decodeMain
 

When true, attempt to decode main, all children, and all procs.

decodeMain is set when there are no -e or -E switches given

Definition at line 275 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::decodeThruIndCall
 

Definition at line 280 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::dfaTypeAnalysis
 

Definition at line 290 of file boomerang.h.

Referenced by commandLine(), and Decompiler::setUseDFTA().

const char* Boomerang::dotFile
 

The file in which the dotty graph is saved.

Definition at line 256 of file boomerang.h.

Referenced by commandLine(), and decompile().

bool Boomerang::dumpXML
 

Definition at line 277 of file boomerang.h.

Referenced by commandLine().

std::vector<ADDRESS> Boomerang::entrypoints
 

A vector which contains all know entrypoints for the Prog.

Definition at line 268 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::experimental
 

Activate experimental code. Caution!

Definition at line 296 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::generateCallGraph
 

Definition at line 292 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::generateSymbols
 

Definition at line 293 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::loadBeforeDecompile
 

Definition at line 285 of file boomerang.h.

Referenced by commandLine(), and decompile().

Log* Boomerang::logger [private]
 

Takes care of the log messages.

Definition at line 98 of file boomerang.h.

Referenced by log(), logTail(), setLogger(), and setOutputDirectory().

int Boomerang::maxMemDepth
 

Definition at line 261 of file boomerang.h.

Referenced by commandLine().

int Boomerang::minsToStopAfter
 

Definition at line 297 of file boomerang.h.

Referenced by commandLine(), and decompile().

bool Boomerang::noBranchSimplify
 

Definition at line 247 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noChangeSignatures
 

Definition at line 288 of file boomerang.h.

bool Boomerang::noDataflow
 

Definition at line 251 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noDecodeChildren
 

Definition at line 282 of file boomerang.h.

Referenced by commandLine(), and Decompiler::setNoDecodeChildren().

bool Boomerang::noDecompile
 

Definition at line 252 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noGlobals
 

Definition at line 294 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noLocals
 

Definition at line 249 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noParameterNames
 

Definition at line 263 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noPromote
 

Definition at line 258 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noProve
 

Definition at line 287 of file boomerang.h.

bool Boomerang::noRemoveLabels
 

Definition at line 250 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noRemoveNull
 

Definition at line 248 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::noRemoveReturns
 

Definition at line 278 of file boomerang.h.

Referenced by commandLine().

int Boomerang::numToPropagate
 

Definition at line 257 of file boomerang.h.

Referenced by commandLine(), and Statement::doPropagateTo().

std::ofstream* Boomerang::ofsIndCallReport
 

Definition at line 281 of file boomerang.h.

Referenced by commandLine().

std::string Boomerang::outputPath [private]
 

The path where all output files are created.

Definition at line 96 of file boomerang.h.

Referenced by commandLine(), getOutputPath(), parseCmd(), setOutputDirectory(), and setOutputPath().

bool Boomerang::printAST
 

Definition at line 276 of file boomerang.h.

Referenced by commandLine(), and decompile().

bool Boomerang::printRtl
 

Definition at line 246 of file boomerang.h.

Referenced by commandLine().

std::string Boomerang::progPath [private]
 

String with the path to the boomerang executable.

Definition at line 94 of file boomerang.h.

Referenced by commandLine(), getProgPath(), and setProgPath().

int Boomerang::propMaxDepth
 

Max depth of expression that will be propagated to more than one dest.

Definition at line 291 of file boomerang.h.

Referenced by commandLine(), and Statement::propagateTo().

bool Boomerang::propOnlyToAll
 

Definition at line 259 of file boomerang.h.

Referenced by commandLine().

bool Boomerang::saveBeforeDecompile
 

Definition at line 286 of file boomerang.h.

Referenced by commandLine(), and decompile().

bool Boomerang::stopAtDebugPoints
 

Definition at line 265 of file boomerang.h.

Referenced by alert_decompile_debug_point(), and commandLine().

bool Boomerang::stopBeforeDecompile
 

Definition at line 253 of file boomerang.h.

Referenced by commandLine(), and decompile().

std::vector<std::string> Boomerang::symbolFiles
 

A vector containing the names off all symbolfiles to load.

Definition at line 270 of file boomerang.h.

Referenced by commandLine().

std::map<ADDRESS, std::string> Boomerang::symbols
 

A map to find a name by a given address.

Definition at line 272 of file boomerang.h.

Referenced by commandLine(), and loadAndDecode().

bool Boomerang::traceDecoder
 

Definition at line 254 of file boomerang.h.

Referenced by commandLine(), SparcFrontEnd::processProc(), and FrontEnd::processProc().

bool Boomerang::vFlag
 

Definition at line 245 of file boomerang.h.

Referenced by commandLine(), and StatementTest::testEmpty().

std::set<Watcher*> Boomerang::watchers [private]
 

The watchers which are interested in this decompilation.

Definition at line 100 of file boomerang.h.

Referenced by addWatcher(), alert_baddecode(), alert_complete(), alert_considering(), alert_decode(), alert_decompile_afterPropagate(), alert_decompile_afterRemoveStmts(), alert_decompile_beforePropagate(), alert_decompile_SSADepth(), alert_decompiling(), alert_end_decode(), alert_end_decompile(), alert_load(), alert_new(), alert_proc_status_change(), alert_remove(), alert_start_decode(), alert_start_decompile(), and alert_update_signature().


The documentation for this class was generated from the following files:
Generated on Tue Sep 19 21:18:40 2006 for Boomerang by  doxygen 1.4.6