X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fdisassembler%2Fllvm%2FLLVMDisassembler.hxx;h=d26bb126f8dee24fc592afc058a5cfd6410c7c62;hp=f2baecb33a2e44904322f298d429ef05852a2654;hb=231dae075375e7d57982f5107b86294fbe726b33;hpb=c100e37a2dfbe6dd221e867559b473a4a5097570 diff --git a/src/disassembler/llvm/LLVMDisassembler.hxx b/src/disassembler/llvm/LLVMDisassembler.hxx index f2baecb..d26bb12 100644 --- a/src/disassembler/llvm/LLVMDisassembler.hxx +++ b/src/disassembler/llvm/LLVMDisassembler.hxx @@ -15,13 +15,14 @@ class LLVMDisassembler - : public Disassembler { + : public Disassembler { public: - LLVMDisassembler(const std::string& filename); - virtual ~LLVMDisassembler(); + LLVMDisassembler(const std::string& filename, InformationManager* manager); + virtual ~LLVMDisassembler(); - void getSymbols(); - uint64_t entryAddress(); + void start(); + void getSymbols() {} + uint64_t entryAddress() {} void forEachFunction(std::function callback); void printEachInstruction(uint64_t start, uint64_t end, @@ -31,47 +32,47 @@ public: return blocks[address]; } - Function * disassembleFunctionAt(uint64_t address, const std::string& name = ""); + Function * disassembleFunctionAt(uint64_t address, const std::string& name = ""); protected: - bool isFunctionCall(uint64_t address) {return false;} - bool isJump(uint64_t address) {return false;} + bool isFunctionCall(uint64_t address) {return false;} + bool isJump(uint64_t address) {return false;} private: - // http://llvm.org/docs/doxygen/html/MCObjectDisassembler_8cpp_source.html +197 - void disassembleFunction(LLVMFunction* function); - void splitBlocks(); - void disassemble(); + // http://llvm.org/docs/doxygen/html/MCObjectDisassembler_8cpp_source.html +197 + void disassembleFunction(LLVMFunction* function); + void splitBlocks(); + void disassemble(); void readSymbols(); void readSections(); - log4cxx::LoggerPtr logger; + log4cxx::LoggerPtr logger; std::map blocks; std::map functions; - llvm::Triple triple; - std::shared_ptr binary; - - - const llvm::Target * target; - llvm::object::ObjectFile * o; - - std::unique_ptr MRI; - std::unique_ptr AsmInfo; - std::unique_ptr Mod; - std::unique_ptr IP; - std::unique_ptr DisAsm; - std::unique_ptr MOFI; - std::unique_ptr Ctx; - std::unique_ptr MIA; - std::unique_ptr STI; - std::unique_ptr MII; - std::unique_ptr RelInfo; - std::unique_ptr Symzer; - - std::map sections; - std::map symbols; + llvm::Triple triple; + std::shared_ptr binary; + + const llvm::Target * target; + llvm::object::ObjectFile * o; + + std::unique_ptr MRI; + std::unique_ptr AsmInfo; + std::unique_ptr Mod; + std::unique_ptr IP; + std::unique_ptr DisAsm; + std::unique_ptr MOFI; + std::unique_ptr Ctx; + std::unique_ptr MIA; + std::unique_ptr STI; + std::unique_ptr MII; + std::unique_ptr RelInfo; + std::unique_ptr Symzer; + + std::map sections; + std::map symbols; + InformationManager * manager; }; #endif