From: Christoph Egger Date: Tue, 3 Jun 2014 13:25:42 +0000 (+0200) Subject: Clean up disassemble() function X-Git-Tag: v0.1~181 X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=commitdiff_plain;h=624ff50c7324a3954c0b00cdb8f61a38fc6b6c41 Clean up disassemble() function --- diff --git a/src/disassembler/llvm/LLVMDisassembler.cxx b/src/disassembler/llvm/LLVMDisassembler.cxx index 25a4ecc..7980a9e 100644 --- a/src/disassembler/llvm/LLVMDisassembler.cxx +++ b/src/disassembler/llvm/LLVMDisassembler.cxx @@ -126,6 +126,7 @@ void LLVMDisassembler::disassemble() { std::stack remaining_blocks; SectionRef text_section = sections[".text"]; + // Assume all function symbols actually start a real function for (auto x = symbols.begin(); x != symbols.end(); ++x) { uint64_t result; bool contains; @@ -157,9 +158,6 @@ void LLVMDisassembler::disassemble() { LOG4CXX_DEBUG(logger, "Handling function " << current_function->getName()); - // if ("_start" != current_function->getName()) - // continue; - LLVMBasicBlock * block = new LLVMBasicBlock(current_function->getStartAddress(), this); remaining_blocks.push(block); blocks.insert(std::make_pair(block->getStartAddress(), block)); @@ -182,19 +180,6 @@ void LLVMDisassembler::disassemble() { if(llvm::MCDisassembler::Success == DisAsm->getInstruction(inst, inst_size, ref, current_address, nulls(), nulls())) { - uint8_t bytes[inst_size+2]; - ref.readBytes(current_address, inst_size, bytes); - s << '\t'; - for(uint8_t* cur = bytes; cur < bytes + inst_size; ++cur) { - s.write_hex(*cur); - s << ' '; - } - s << '\t'; - - IP->printInst(&inst, s, ""); - - LOG4CXX_DEBUG(logger, std::hex << current_address + base_address << s.str()); - uint64_t jmptarget; if (MIA->evaluateBranch(inst, current_address, inst_size, jmptarget)) { jmptarget += base_address;