[Lldb-commits] [lldb] r180216 - Temporarily recognize exc_type EXC_BREAKPOINT with an exc_code of 0

Jason Molenda jmolenda at apple.com
Wed Apr 24 13:58:03 PDT 2013


Author: jmolenda
Date: Wed Apr 24 15:58:03 2013
New Revision: 180216

URL: http://llvm.org/viewvc/llvm-project?rev=180216&view=rev
Log:
Temporarily recognize exc_type EXC_BREAKPOINT with an exc_code of 0
(normally undefined) as indicating a breakpoint hit, in addition
to the normal (EXC_BREAKPOINT, EXC_ARM_BREAKPOINT) pair.
<rdar://problem/13730366> 

Modified:
    lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp

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=180216&r1=180215&r2=180216&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/StopInfoMachException.cpp Wed Apr 24 15:58:03 2013
@@ -193,6 +193,8 @@ StopInfoMachException::GetDescription ()
                     case 0x101: code_desc = "EXC_ARM_DA_ALIGN"; break;
                     case 0x102: code_desc = "EXC_ARM_DA_DEBUG"; break;
                     case 1: code_desc = "EXC_ARM_BREAKPOINT"; break;
+                    // FIXME temporary workaround, exc_code 0 does not really mean EXC_ARM_BREAKPOINT
+                    case 0: code_desc = "EXC_ARM_BREAKPOINT"; break;
                     }
                     break;
 
@@ -419,6 +421,11 @@ StopInfoMachException::CreateStopReasonW
                     {
                         is_actual_breakpoint = true;
                         is_trace_if_actual_breakpoint_missing = true;
+                    }
+                    else if (exc_code == 0) // FIXME not EXC_ARM_BREAKPOINT but a kernel is currently returning this so accept it as indicating a breakpoint until the kernel is fixed
+                    {
+                        is_actual_breakpoint = true;
+                        is_trace_if_actual_breakpoint_missing = true;
                     }
                     break;
 





More information about the lldb-commits mailing list