diff options
author | Jim Ingham <jingham@apple.com> | 2010-06-19 04:45:32 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2010-06-19 04:45:32 +0000 |
commit | b01e742af7651361c2e49d22140dee9342d8d72e (patch) | |
tree | ed6662bee21de01cbe59c76e620f2881ac921c1b /lldb/source/Target/ThreadPlanStepOverBreakpoint.cpp | |
parent | b2a38a7286d20a4c6cf20820a0cfe9a1d30df93e (diff) | |
download | bcm5719-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.cpp | 17 |
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; +} |