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
This commit is contained in:
Jason Molenda
2013-09-12 23:23:35 +00:00
parent a5ebe426a5
commit 6b3e6d5487
6 changed files with 16 additions and 7 deletions

View File

@@ -143,11 +143,13 @@ SBFunction::GetInstructions (SBTarget target, const char *flavor)
ModuleSP module_sp (m_opaque_ptr->GetAddressRange().GetBaseAddress().GetModule());
if (module_sp)
{
const bool prefer_file_cache = false;
sb_instructions.SetDisassembler (Disassembler::DisassembleRange (module_sp->GetArchitecture(),
NULL,
flavor,
exe_ctx,
m_opaque_ptr->GetAddressRange()));
m_opaque_ptr->GetAddressRange(),
prefer_file_cache));
}
}
return sb_instructions;