From 6b790a318480cdbfc1028f5f5ee8a57ff71f08e2 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Sun, 6 Jan 2013 16:52:00 +0100 Subject: [PATCH] Conditionally calltrace in abort(3). --- libc/abort.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libc/abort.cpp b/libc/abort.cpp index 346711ae..76a39be3 100644 --- a/libc/abort.cpp +++ b/libc/abort.cpp @@ -22,6 +22,9 @@ *******************************************************************************/ +#include + +#include #include #if defined(SORTIX_KERNEL) @@ -38,6 +41,11 @@ extern "C" void abort(void) extern "C" void abort(void) { + struct stat st; + if ( getenv("LIBC_DEBUG_CALLTRACE") || stat("/etc/calltrace", &st) == 0 ) + calltrace(); + if ( getenv("LIBC_DEBUG_LOOP") || stat("/etc/calltrace_loop", &st) == 0 ) + while ( true ); // TODO: Send SIGABRT instead! _Exit(128 + 6); }