X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fdisassembler%2Fllvm%2FLLVMDisassembler.hxx;h=a64dc2c66e451131f9187ab82ca5a70342a9e1ab;hp=6c55b44d5d855e2ee8ea19ace28940c9da7a4629;hb=4443ad3e38327c776dcc68538591456d37c9ed6f;hpb=ccde95277ce5e3929d09aef387c2f5956592d066 diff --git a/src/disassembler/llvm/LLVMDisassembler.hxx b/src/disassembler/llvm/LLVMDisassembler.hxx index 6c55b44..a64dc2c 100644 --- a/src/disassembler/llvm/LLVMDisassembler.hxx +++ b/src/disassembler/llvm/LLVMDisassembler.hxx @@ -14,31 +14,31 @@ class BasicBlock; Disassembler * createLLVMDisassembler(const std::string& filename, InformationManager* manager); -template +template class LLVMDisassembler : public Disassembler { public: LLVMDisassembler(const std::string& filename, InformationManager* manager, - llvm::object::ELFObjectFile* file = NULL); + llvm::object::ObjectFile* file = NULL); virtual ~LLVMDisassembler(); void start(); void getSymbols() {} - uint64_t entryAddress() {return _entryAddress;} + uint64_t entryAddress(); void printEachInstruction(uint64_t start, uint64_t end, std::function fun); Function * disassembleFunctionAt(uint64_t address, const std::string& name = ""); + std::list getInstructions(const BasicBlock* block); private: - typedef llvm::object::ELFFile ELFO; - // http://llvm.org/docs/doxygen/html/MCObjectDisassembler_8cpp_source.html +197 void disassembleFunction(Function* function); void splitBlocks(Function* fun); void disassemble(); + llvm::object::SectionRef getTextSection(); void readSymbols(); void readSections(); @@ -50,7 +50,7 @@ private: std::shared_ptr binary; const llvm::Target * target; - llvm::object::ELFObjectFile * o; + llvm::object::ObjectFile * o; std::unique_ptr MRI; std::unique_ptr AsmInfo;