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=8c93a450610d4f0f2b8925be02fd976b04ceff14;hb=880ba6d085d9a6b70523328b8099679a664b8c0c;hpb=f66c54319d23de4c4905ad11a8f552917d2dfba9 diff --git a/src/disassembler/llvm/LLVMDisassembler.hxx b/src/disassembler/llvm/LLVMDisassembler.hxx index 8c93a45..f2baecb 100644 --- a/src/disassembler/llvm/LLVMDisassembler.hxx +++ b/src/disassembler/llvm/LLVMDisassembler.hxx @@ -24,19 +24,24 @@ public: uint64_t entryAddress(); void forEachFunction(std::function callback); - void printEachInstruction(uint64_t start, uint64_t end, std::function fun); + 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(); @@ -62,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;