retdec
Classes | Functions | Variables
retdec-decompiler.cpp File Reference

RetDec decompiler. More...

#include <fstream>
#include <future>
#include <chrono>
#include <thread>
#include <llvm/ADT/Triple.h>
#include <llvm/Analysis/LoopInfo.h>
#include <llvm/Analysis/ScalarEvolution.h>
#include <llvm/Analysis/TargetLibraryInfo.h>
#include <llvm/IR/DataLayout.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/LegacyPassManager.h>
#include <llvm/IR/Module.h>
#include <llvm/IRReader/IRReader.h>
#include <llvm/MC/SubtargetFeature.h>
#include <llvm/Pass.h>
#include <llvm/Support/CommandLine.h>
#include <llvm/Support/Debug.h>
#include <llvm/Support/ErrorHandling.h>
#include <llvm/Support/FileSystem.h>
#include <llvm/Support/FormattedStream.h>
#include <llvm/Support/Host.h>
#include <llvm/Support/ManagedStatic.h>
#include <llvm/Support/PluginLoader.h>
#include <llvm/Support/PrettyStackTrace.h>
#include <llvm/Support/Signals.h>
#include <llvm/Support/SourceMgr.h>
#include <llvm/Support/TargetRegistry.h>
#include <llvm/Support/TargetSelect.h>
#include <llvm/Support/ToolOutputFile.h>
#include <llvm/Target/TargetMachine.h>
#include "retdec/ar-extractor/archive_wrapper.h"
#include "retdec/ar-extractor/detection.h"
#include "retdec/config/config.h"
#include "retdec/retdec/retdec.h"
#include "retdec/macho-extractor/break_fat.h"
#include "retdec/unpackertool/unpackertool.h"
#include "retdec/utils/binary_path.h"
#include "retdec/utils/filesystem.h"
#include "retdec/utils/string.h"
#include "retdec/utils/memory.h"
#include "retdec/utils/io/log.h"

Classes

class  ProgramOptions
 

Functions

void limitMaximalMemoryIfRequested (const retdec::config::Parameters &params)
 
void setLogsFrom (const retdec::config::Parameters &params)
 
int decompile (retdec::config::Config &config, ProgramOptions &po)
 
void cleanup (ProgramOptions &po)
 
int main (int argc, char **argv)
 

Variables

const int EXIT_TIMEOUT = 137
 
const int EXIT_BAD_ALLOC = 135
 

Detailed Description

RetDec decompiler.

Function Documentation

◆ cleanup()

void cleanup ( ProgramOptions po)

◆ decompile()

int decompile ( retdec::config::Config config,
ProgramOptions po 
)

◆ limitMaximalMemoryIfRequested()

void limitMaximalMemoryIfRequested ( const retdec::config::Parameters params)

Limits the maximal memory of the tool based on the command-line parameters.

◆ main()

int main ( int  argc,
char **  argv 
)

◆ setLogsFrom()

void setLogsFrom ( const retdec::config::Parameters params)

TODO: this function is exact copy of the function located in retdec/retdec.cpp. The reason for this is that right now creation of correct interface that would hold this function is much more time expensive than hard copy.

This function should be located in utils/io/log.{cpp,h}. For that it should now retdec::config::Parameters object. Inclusion of this object would be, however, only possible after linking rapidjson library to the retdec::utils. This is not wanted. Best solution would be making Parameters unaware of rapidjson.

Variable Documentation

◆ EXIT_BAD_ALLOC

const int EXIT_BAD_ALLOC = 135

◆ EXIT_TIMEOUT

const int EXIT_TIMEOUT = 137