[Lldb-commits] [lldb] r259684 - The SetStopInfo from a Mach Exception was setting the stop
Jim Ingham via lldb-commits
lldb-commits at lists.llvm.org
Wed Feb 3 11:45:32 PST 2016
Author: jingham
Date: Wed Feb 3 13:45:31 2016
New Revision: 259684
URL: http://llvm.org/viewvc/llvm-project?rev=259684&view=rev
Log:
The SetStopInfo from a Mach Exception was setting the stop
reason to None when we stop due to a trace, then noticed that
we were on a breakpoint that was not valid for the current thread.
That should actually have set it back to trace.
This was pr26441 (<rdar://problem/24470203>)
Modified:
lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py
lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp
lldb/trunk/source/Target/ThreadPlanStepInstruction.cpp
Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py?rev=259684&r1=259683&r2=259684&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py Wed Feb 3 13:45:31 2016
@@ -79,7 +79,6 @@ class ConsecutiveBreakpointsTestCase(Tes
self.finish_test()
@no_debug_info_test
- @expectedFailureDarwin(bugnumber="llvm.org/pr26441")
def test_single_step_thread_specific(self):
"""Test that single step stops, even though the second breakpoint is not valid."""
self.prepare_test()
Modified: lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp?rev=259684&r1=259683&r2=259684&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp Wed Feb 3 13:45:31 2016
@@ -507,6 +507,8 @@ StopInfoMachException::CreateStopReasonW
// report the breakpoint regardless of the thread.
if (bp_site_sp->ValidForThisThread (&thread) || thread.GetProcess()->GetOperatingSystem () != NULL)
return StopInfo::CreateStopReasonWithBreakpointSiteID (thread, bp_site_sp->GetID());
+ else if (is_trace_if_actual_breakpoint_missing)
+ return StopInfo::CreateStopReasonToTrace (thread);
else
return StopInfoSP();
}
Modified: lldb/trunk/source/Target/ThreadPlanStepInstruction.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/ThreadPlanStepInstruction.cpp?rev=259684&r1=259683&r2=259684&view=diff
==============================================================================
--- lldb/trunk/source/Target/ThreadPlanStepInstruction.cpp (original)
+++ lldb/trunk/source/Target/ThreadPlanStepInstruction.cpp Wed Feb 3 13:45:31 2016
@@ -239,7 +239,8 @@ ThreadPlanStepInstruction::ShouldStop (E
}
else
{
- if (m_thread.GetRegisterContext()->GetPC(0) != m_instruction_addr)
+ lldb::addr_t pc_addr = m_thread.GetRegisterContext()->GetPC(0);
+ if (pc_addr != m_instruction_addr)
{
if (--m_iteration_count <= 0)
{
More information about the lldb-commits
mailing list