X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fdisassembler%2Fllvm%2FLLVMDisassembler.cxx;h=6b3402eb0b2414d56c4b415f7467e3c29d7e33cd;hp=3642c5ed74b7492665d385b540bb0444234461e5;hb=cc7580dd344851907ef3003b838da0aa41f6aaf2;hpb=880ba6d085d9a6b70523328b8099679a664b8c0c diff --git a/src/disassembler/llvm/LLVMDisassembler.cxx b/src/disassembler/llvm/LLVMDisassembler.cxx index 3642c5e..6b3402e 100644 --- a/src/disassembler/llvm/LLVMDisassembler.cxx +++ b/src/disassembler/llvm/LLVMDisassembler.cxx @@ -129,6 +129,16 @@ LLVMDisassembler::~LLVMDisassembler() { } Function* LLVMDisassembler::disassembleFunctionAt(uint64_t address, const std::string& name) { + SectionRef text_section = sections[".text"]; + uint64_t base_address, size; + text_section.getAddress(base_address); + text_section.getSize(size); + + if (address < base_address || + address >= base_address + size) { + return NULL; + } + if (functions.find(address) != functions.end()) { return functions[address]; }