diff options
3 files changed, 4 insertions, 2 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py index 8aa1ee75ef0..d2bd9f2812d 100644 --- a/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py +++ b/lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/consecutive_breakpoints/TestConsecutiveBreakpoints.py @@ -79,7 +79,6 @@ class ConsecutiveBreakpointsTestCase(TestBase): 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() diff --git a/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp b/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp index 3bf766e875c..7c0487b1d43 100644 --- a/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp +++ b/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp @@ -507,6 +507,8 @@ StopInfoMachException::CreateStopReasonWithMachException // 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(); } diff --git a/lldb/source/Target/ThreadPlanStepInstruction.cpp b/lldb/source/Target/ThreadPlanStepInstruction.cpp index 9d7d52167ff..ccfd52e00e1 100644 --- a/lldb/source/Target/ThreadPlanStepInstruction.cpp +++ b/lldb/source/Target/ThreadPlanStepInstruction.cpp @@ -239,7 +239,8 @@ ThreadPlanStepInstruction::ShouldStop (Event *event_ptr) } 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) { |