summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2014-03-19 13:11:35 +0000
committeremaste <emaste@FreeBSD.org>2014-03-19 13:11:35 +0000
commit958843c32b7a29741f2e45996b5b3e89f9e108b0 (patch)
tree95ae4ffabc848a86b94be3ad3cd42471cdb66b06 /contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp
parent2a9993c246f3a2463ccd6b8786781e5b97a35065 (diff)
downloadFreeBSD-src-958843c32b7a29741f2e45996b5b3e89f9e108b0.zip
FreeBSD-src-958843c32b7a29741f2e45996b5b3e89f9e108b0.tar.gz
MFC r258054: Update LLDB to upstream r194122 snapshot
Inludes minor changes relative to upstream, for compatibility with FreeBSD's in-tree LLVM 3.3: - Reverted LLDB r191806, restoring use of previous API. - Reverted part of LLDB r189317, restoring previous enum names. - Work around missing LLVM r192504, using previous registerEHFrames API (limited functionality). - Removed PlatformWindows header include and init/terminate calls. Sponsored by: DARPA, AFRL
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp')
-rw-r--r--contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp b/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp
index 3940d54..309f773 100644
--- a/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp
+++ b/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepRange.cpp
@@ -173,6 +173,25 @@ ThreadPlanStepRange::InRange ()
log->Printf ("Step range plan stepped to another range of same line: %s", s.GetData());
}
}
+ else if (new_context.line_entry.line == 0)
+ {
+ new_context.line_entry.line = m_addr_context.line_entry.line;
+ m_addr_context = new_context;
+ AddRange(m_addr_context.line_entry.range);
+ ret_value = true;
+ if (log)
+ {
+ StreamString s;
+ m_addr_context.line_entry.Dump (&s,
+ m_thread.CalculateTarget().get(),
+ true,
+ Address::DumpStyleLoadAddress,
+ Address::DumpStyleLoadAddress,
+ true);
+
+ log->Printf ("Step range plan stepped to a range at linenumber 0 stepping through that range: %s", s.GetData());
+ }
+ }
else if (new_context.line_entry.range.GetBaseAddress().GetLoadAddress(m_thread.CalculateTarget().get())
!= pc_load_addr)
{
@@ -284,11 +303,13 @@ ThreadPlanStepRange::GetInstructionsForAddress(lldb::addr_t addr, size_t &range_
ExecutionContext exe_ctx (m_thread.GetProcess());
const char *plugin_name = NULL;
const char *flavor = NULL;
+ const bool prefer_file_cache = true;
m_instruction_ranges[i] = Disassembler::DisassembleRange(GetTarget().GetArchitecture(),
plugin_name,
flavor,
exe_ctx,
- m_address_ranges[i]);
+ m_address_ranges[i],
+ prefer_file_cache);
}
if (!m_instruction_ranges[i])
@@ -361,7 +382,7 @@ ThreadPlanStepRange::SetNextBranchBreakpoint ()
{
const bool is_internal = true;
run_to_address = instructions->GetInstructionAtIndex(branch_index)->GetAddress();
- m_next_branch_bp_sp = GetTarget().CreateBreakpoint(run_to_address, is_internal);
+ m_next_branch_bp_sp = GetTarget().CreateBreakpoint(run_to_address, is_internal, false);
if (m_next_branch_bp_sp)
{
if (log)
OpenPOWER on IntegriCloud