Don't listen for EXC_RESOURCE exceptions, those should really be handled by the system
authorJim Ingham <jingham@apple.com>
Thu, 24 Jan 2013 23:33:19 +0000 (23:33 +0000)
committerJim Ingham <jingham@apple.com>
Thu, 24 Jan 2013 23:33:19 +0000 (23:33 +0000)
handler.  Also put in string translations for a couple of exceptions we were missing.

llvm-svn: 173390

lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp
lldb/tools/debugserver/source/MacOSX/MachException.cpp

index 5999e13..60570b5 100644 (file)
@@ -210,6 +210,12 @@ StopInfoMachException::GetDescription ()
         case 10:
             exc_desc = "EXC_CRASH";
             break;
+        case 11:
+            exc_desc = "EXC_RESOURCE";
+            break;
+        case 12:
+            exc_desc = "EXC_GUARD";
+            break;
         }
         
         StreamString strm;
index fd65104..1af92fb 100644 (file)
@@ -480,6 +480,17 @@ MachException::Data::Dump() const
                            EXC_MASK_RPC_ALERT       | \
                            EXC_MASK_MACHINE)
 
+// Don't listen for EXC_RESOURCE, it should really get handled by the system handler.
+
+#ifndef EXC_RESOURCE
+#define EXC_RESOURCE 11
+#endif
+
+#ifndef EXC_MASK_RESOURCE
+#define EXC_MASK_RESOURCE (1 << EXC_RESOURCE)
+#endif
+
+#define LLDB_EXC_MASK (EXC_MASK_ALL & ~EXC_MASK_RESOURCE)
 
 kern_return_t
 MachException::PortInfo::Save (task_t task)
@@ -490,7 +501,7 @@ MachException::PortInfo::Save (task_t task)
     // and back off to just what is supported on the current system
     DNBError err;
 
-    mask = EXC_MASK_ALL;
+    mask = LLDB_EXC_MASK;
 
     count = (sizeof (ports) / sizeof (ports[0]));
     err = ::task_get_exception_ports (task, mask, masks, &count, ports, behaviors, flavors);