diff options
author | Mathias Agopian <mathias@google.com> | 2009-10-06 15:35:22 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2009-10-06 16:02:12 -0700 |
commit | e36502673d98df089acbc645f077ee0c2be20c5d (patch) | |
tree | 14c5fa566500510d0b37fd1cb6da35c6153ad4d7 /libc/unistd | |
parent | fdc5c1f56f9d21034badb8e4b092c47098f19613 (diff) | |
download | bionic-e36502673d98df089acbc645f077ee0c2be20c5d.zip bionic-e36502673d98df089acbc645f077ee0c2be20c5d.tar.gz bionic-e36502673d98df089acbc645f077ee0c2be20c5d.tar.bz2 |
fix [2170898] abort() doesn't print a stack tarce
the issue here is that abort() can be called from anywhere, in particular
from malloc or free. When we try to use the debug_log functions, these
can end up calling into some code (like malloc/free) that called abort()
in the first place and end up in an infinite recursion loop.
Diffstat (limited to 'libc/unistd')
-rw-r--r-- | libc/unistd/abort.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/libc/unistd/abort.c b/libc/unistd/abort.c index d4e40e1..f323941 100644 --- a/libc/unistd/abort.c +++ b/libc/unistd/abort.c @@ -73,10 +73,8 @@ abort(void) } /* temporary, for bug hunting */ - debug_log("abort() called in pid %d\n", getpid()); /* seg fault seems to produce better debuggerd results than SIGABRT */ *((char*)0xdeadbaad) = 39; - debug_log("somehow we're not dead?\n"); /* -- */ (void)kill(getpid(), SIGABRT); |