summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/ThreadPlanStepInRange.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2014-09-29 23:17:18 +0000
committerJim Ingham <jingham@apple.com>2014-09-29 23:17:18 +0000
commit2bdbfd50d2c9a80c6132a3f83d1c097b0b0c6ca5 (patch)
tree08490741e71cb48256f74dc8e42944b6c427d79f /lldb/source/Target/ThreadPlanStepInRange.cpp
parent8b6fefb3a3b56597e3b1f92539f876c4555e7e2e (diff)
downloadbcm5719-llvm-2bdbfd50d2c9a80c6132a3f83d1c097b0b0c6ca5.tar.gz
bcm5719-llvm-2bdbfd50d2c9a80c6132a3f83d1c097b0b0c6ca5.zip
This checkin is the first step in making the lldb thread stepping mechanism more accessible from
the user level. It adds the ability to invent new stepping modes implemented by python classes, and to view the current thread plan stack and to some extent alter it. I haven't gotten to documentation or tests yet. But this should not cause any behavior changes if you don't use it, so its safe to check it in now and work on it incrementally. llvm-svn: 218642
Diffstat (limited to 'lldb/source/Target/ThreadPlanStepInRange.cpp')
-rw-r--r--lldb/source/Target/ThreadPlanStepInRange.cpp29
1 files changed, 22 insertions, 7 deletions
diff --git a/lldb/source/Target/ThreadPlanStepInRange.cpp b/lldb/source/Target/ThreadPlanStepInRange.cpp
index 3e9abef6557..1e7b0458981 100644
--- a/lldb/source/Target/ThreadPlanStepInRange.cpp
+++ b/lldb/source/Target/ThreadPlanStepInRange.cpp
@@ -128,17 +128,31 @@ void
ThreadPlanStepInRange::GetDescription (Stream *s, lldb::DescriptionLevel level)
{
if (level == lldb::eDescriptionLevelBrief)
+ {
s->Printf("step in");
- else
+ return;
+ }
+
+ s->Printf ("Stepping in");
+ bool printed_line_info = false;
+ if (m_addr_context.line_entry.IsValid())
+ {
+ s->Printf (" through line ");
+ m_addr_context.line_entry.DumpStopContext (s, false);
+ printed_line_info = true;
+ }
+
+ const char *step_into_target = m_step_into_target.AsCString();
+ if (step_into_target && step_into_target[0] != '\0')
+ s->Printf (" targeting %s", m_step_into_target.AsCString());
+
+ if (!printed_line_info || level == eDescriptionLevelVerbose)
{
- s->Printf ("Stepping through range (stepping into functions): ");
+ s->Printf (" using ranges:");
DumpRanges(s);
- const char *step_into_target = m_step_into_target.AsCString();
- if (step_into_target && step_into_target[0] != '\0')
- s->Printf (" targeting %s.", m_step_into_target.AsCString());
- else
- s->PutChar('.');
}
+
+ s->PutChar('.');
}
bool
@@ -303,6 +317,7 @@ ThreadPlanStepInRange::ShouldStop (Event *event_ptr)
else
{
m_no_more_plans = false;
+ m_sub_plan_sp->SetPrivate(true);
return false;
}
}
OpenPOWER on IntegriCloud