diff options
author | Greg Clayton <gclayton@apple.com> | 2013-03-28 23:42:53 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2013-03-28 23:42:53 +0000 |
commit | 3faf47c46225b0f56c14235550d363ae90f4f1c6 (patch) | |
tree | 979adba317d03734d4d237552cfaf1cbc2bb7088 /lldb/source/Expression/IRExecutionUnit.cpp | |
parent | a486a11dcfaa9f31d78eb52929d8d33c56e9cf60 (diff) | |
download | bcm5719-llvm-3faf47c46225b0f56c14235550d363ae90f4f1c6.tar.gz bcm5719-llvm-3faf47c46225b0f56c14235550d363ae90f4f1c6.zip |
<rdar://problem/11730263>
PC relative loads are missing disassembly comments when disassembled in a live process.
This issue was because some sections, like __TEXT and __DATA in libobjc.A.dylib, were being moved when they were put into the dyld shared cache. This could also affect any other system that slides sections individually.
The solution is to keep track of wether the bytes we will disassemble are from an executable file (file address), or from a live process (load address). We now do the right thing based off of this input in all cases.
llvm-svn: 178315
Diffstat (limited to 'lldb/source/Expression/IRExecutionUnit.cpp')
-rw-r--r-- | lldb/source/Expression/IRExecutionUnit.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lldb/source/Expression/IRExecutionUnit.cpp b/lldb/source/Expression/IRExecutionUnit.cpp index 70a98adf27e..25fb157040c 100644 --- a/lldb/source/Expression/IRExecutionUnit.cpp +++ b/lldb/source/Expression/IRExecutionUnit.cpp @@ -234,7 +234,7 @@ IRExecutionUnit::DisassembleFunction (Stream &stream, DataExtractor::TypeUInt8); } - disassembler->DecodeInstructions (Address (func_remote_addr), extractor, 0, UINT32_MAX, false); + disassembler->DecodeInstructions (Address (func_remote_addr), extractor, 0, UINT32_MAX, false, false); InstructionList &instruction_list = disassembler->GetInstructionList(); const uint32_t max_opcode_byte_size = instruction_list.GetMaxOpcocdeByteSize(); |