X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fdisassembler%2Fllvm%2FLLVMDisassembler.hxx;h=59f73497455162c223fa5c056dea38a23408139c;hp=d26bb126f8dee24fc592afc058a5cfd6410c7c62;hb=1b95144814ee74e611fd8a3806e54f064b120460;hpb=231dae075375e7d57982f5107b86294fbe726b33 diff --git a/src/disassembler/llvm/LLVMDisassembler.hxx b/src/disassembler/llvm/LLVMDisassembler.hxx index d26bb12..59f7349 100644 --- a/src/disassembler/llvm/LLVMDisassembler.hxx +++ b/src/disassembler/llvm/LLVMDisassembler.hxx @@ -14,6 +14,9 @@ #include "disassembler/llvm/LLVMFunction.hxx" +Disassembler * createLLVMDisassembler(const std::string& filename, InformationManager* manager); + +template class LLVMDisassembler : public Disassembler { public: @@ -22,11 +25,12 @@ public: void start(); void getSymbols() {} - uint64_t entryAddress() {} + uint64_t entryAddress() {return _entryAddress;} void forEachFunction(std::function callback); void printEachInstruction(uint64_t start, uint64_t end, - std::function fun); + std::function fun); BasicBlock * getBasicBlock(uint64_t address) { return blocks[address]; @@ -41,7 +45,7 @@ protected: private: // http://llvm.org/docs/doxygen/html/MCObjectDisassembler_8cpp_source.html +197 void disassembleFunction(LLVMFunction* function); - void splitBlocks(); + void splitBlocks(LLVMFunction* fun); void disassemble(); void readSymbols(); @@ -73,6 +77,7 @@ private: std::map sections; std::map symbols; InformationManager * manager; + uint64_t _entryAddress; }; #endif