Disassembler::DisassembleRange() currently calls Target::ReadMemory
with prefer_file_cache == false. This is what we want to do when
the user is doing a disassemble command -- show the actual memory
contents in case the memory has been corrupted or something -- but
when we're profiling functions for stepping or unwinding
(ThreadPlanStepRange::GetInstructionsForAddress,
UnwindAssemblyInstEmulation::GetNonCallSiteUnwindP) we can read
__TEXT instructions directly out of the file, if it exists.
<rdar://problem/14397491>
llvm-svn: 190638
diff --git a/lldb/source/Core/Disassembler.cpp b/lldb/source/Core/Disassembler.cpp
index e80e92c..90c4f04 100644
--- a/lldb/source/Core/Disassembler.cpp
+++ b/lldb/source/Core/Disassembler.cpp
@@ -235,7 +235,8 @@
const char *plugin_name,
const char *flavor,
const ExecutionContext &exe_ctx,
- const AddressRange &range
+ const AddressRange &range,
+ bool prefer_file_cache
)
{
lldb::DisassemblerSP disasm_sp;
@@ -245,7 +246,6 @@
if (disasm_sp)
{
- const bool prefer_file_cache = false;
size_t bytes_disassembled = disasm_sp->ParseInstructions (&exe_ctx, range, NULL, prefer_file_cache);
if (bytes_disassembled == 0)
disasm_sp.reset();