X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fdisassembler%2Fllvm%2FLLVMDisassembler.hxx;h=f2baecb33a2e44904322f298d429ef05852a2654;hp=848b20e4a7cff206c66c7ba4e78ef5f16e1be39f;hb=880ba6d085d9a6b70523328b8099679a664b8c0c;hpb=1d66010fc38eab99ec29d25606e3d44a3297e6e6 diff --git a/src/disassembler/llvm/LLVMDisassembler.hxx b/src/disassembler/llvm/LLVMDisassembler.hxx index 848b20e..f2baecb 100644 --- a/src/disassembler/llvm/LLVMDisassembler.hxx +++ b/src/disassembler/llvm/LLVMDisassembler.hxx @@ -24,17 +24,24 @@ public: uint64_t entryAddress(); void forEachFunction(std::function callback); + void printEachInstruction(uint64_t start, uint64_t end, + std::function fun); + BasicBlock * getBasicBlock(uint64_t address) { return blocks[address]; } + Function * disassembleFunctionAt(uint64_t address, const std::string& name = ""); + protected: 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 disassemble(); + void disassembleFunction(LLVMFunction* function); + void splitBlocks(); + void disassemble(); void readSymbols(); void readSections(); @@ -60,8 +67,8 @@ private: std::unique_ptr MIA; std::unique_ptr STI; std::unique_ptr MII; - llvm::OwningPtr RelInfo; - llvm::OwningPtr Symzer; + std::unique_ptr RelInfo; + std::unique_ptr Symzer; std::map sections; std::map symbols;