summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2010-06-19 04:45:32 +0000
committerJim Ingham <jingham@apple.com>2010-06-19 04:45:32 +0000
commitb01e742af7651361c2e49d22140dee9342d8d72e (patch)
treeed6662bee21de01cbe59c76e620f2881ac921c1b /lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
parentb2a38a7286d20a4c6cf20820a0cfe9a1d30df93e (diff)
downloadbcm5719-llvm-b01e742af7651361c2e49d22140dee9342d8d72e.tar.gz
bcm5719-llvm-b01e742af7651361c2e49d22140dee9342d8d72e.zip
Two changes in this checkin. Added a ThreadPlanKind so that I can do some reasoning based on the kind of thread plan
without having to use RTTI. Removed the ThreadPlanContinue and replaced with a ShouldAutoContinue query that serves the same purpose. Having to push another plan to assert that if there's no other indication the target should continue when this plan is popped was flakey and error prone. This method is more stable, and fixed problems we were having with thread specific breakpoints. llvm-svn: 106378
Diffstat (limited to 'lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp')
-rw-r--r--lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp b/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
index 2b8b06d5960..9f5b1ceeca8 100644
--- a/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
+++ b/lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp
@@ -27,13 +27,15 @@ using namespace lldb_private;
//----------------------------------------------------------------------
ThreadPlanStepOverBreakpoint::ThreadPlanStepOverBreakpoint (Thread &thread) :
- ThreadPlan ("Step over breakpoint trap",
+ ThreadPlan (ThreadPlan::eKindStepOverBreakpoint, "Step over breakpoint trap",
thread,
eVoteNo,
eVoteNoOpinion), // We need to report the run since this happens
// first in the thread plan stack when stepping
// over a breakpoint
- m_breakpoint_addr (LLDB_INVALID_ADDRESS)
+ m_breakpoint_addr (LLDB_INVALID_ADDRESS),
+ m_auto_continue(false)
+
{
m_breakpoint_addr = m_thread.GetRegisterContext()->GetPC();
m_breakpoint_site_id = m_thread.GetProcess().GetBreakpointSiteList().FindIDByAddress (m_breakpoint_addr);
@@ -128,3 +130,14 @@ ThreadPlanStepOverBreakpoint::MischiefManaged ()
}
}
+void
+ThreadPlanStepOverBreakpoint::SetAutoContinue (bool do_it)
+{
+ m_auto_continue = do_it;
+}
+
+bool
+ThreadPlanStepOverBreakpoint::ShouldAutoContinue (Event *event_ptr)
+{
+ return m_auto_continue;
+}
OpenPOWER on IntegriCloud