[Lldb-commits] [lldb] r123157 - /lldb/trunk/source/Target/UnixSignals.cpp

Greg Clayton gclayton at apple.com
Sun Jan 9 19:47:25 PST 2011

Author: gclayton
Date: Sun Jan  9 21:47:25 2011
New Revision: 123157

URL: http://llvm.org/viewvc/llvm-project?rev=123157&view=rev
Change the default signal setting for SIBABRT to SUPPRESS the signal. Why?
When debugging, if an expression hits a SIGABRT, it the expression ends up
completing and stopping due the the "SIGABRT". Then the next thing that runs
(another expression, or continuing the program) ends up progating the SIGABRT
and causing the parent processes to die.

We should probably think of a different solution where we suppress any signal
that resulted due to an expression, or we modifyin the UnixSignals class to
contain a row for "suppress for expression".

So the settings for SIGABRT are: suppress = true, stop = true, and 
notify = true.


Modified: lldb/trunk/source/Target/UnixSignals.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/UnixSignals.cpp?rev=123157&r1=123156&r2=123157&view=diff
--- lldb/trunk/source/Target/UnixSignals.cpp (original)
+++ lldb/trunk/source/Target/UnixSignals.cpp Sun Jan  9 21:47:25 2011
@@ -66,7 +66,7 @@
     AddSignal (3,    "SIGQUIT",   "QUIT",    false,     true,  true,  "quit");
     AddSignal (4,    "SIGILL",    "ILL",     false,     true,  true,  "illegal instruction");
     AddSignal (5,    "SIGTRAP",   "TRAP",    true,      true,  true,  "trace trap (not reset when caught)");
-    AddSignal (6,    "SIGABRT",   "ABRT",    false,     true,  true,  "abort()");
+    AddSignal (6,    "SIGABRT",   "ABRT",    true,      true,  true,  "abort()");
     AddSignal (7,    "SIGEMT",    "EMT",     false,     true,  true,  "pollable event");
     AddSignal (8,    "SIGFPE",    "FPE",     false,     true,  true,  "floating point exception");
     AddSignal (9,    "SIGKILL",   "KILL",    false,     true,  true,  "kill");

More information about the lldb-commits mailing list