1.1 --- a/src/util.c Wed Oct 31 12:05:23 2007 +0000
1.2 +++ b/src/util.c Thu Nov 08 11:53:56 2007 +0000
1.5 - * $Id: util.c,v 1.12 2007-10-31 12:05:23 nkeynes Exp $
1.6 + * $Id: util.c,v 1.13 2007-11-07 11:45:53 nkeynes Exp $
1.8 * Miscellaneous utility functions.
1.11 * GNU General Public License for more details.
1.14 +#define HAVE_EXECINFO_H 1
1.21 +#include <signal.h>
1.26 #include "sh4/sh4core.h"
1.28 char *msg_levels[] = { "FATAL", "ERROR", "WARN", "INFO", "DEBUG", "TRACE" };
1.29 -int global_msg_level = EMIT_WARN;
1.30 +int global_msg_level = EMIT_INFO;
1.32 +static void report_crash( int signo, siginfo_t *info, void *ptr )
1.36 + fprintf( stderr, "--- Aborting with signal %d ---\n", signo );
1.37 + // Get gdb to print a nice backtrace for us
1.38 + snprintf( buf, 128, "gdb -batch -f --quiet --pid=%d -ex bt", getpid() );
1.44 +void install_crash_handler(void)
1.46 + struct sigaction sa;
1.48 + sa.sa_sigaction = report_crash;
1.49 + sigemptyset(&sa.sa_mask);
1.50 + sa.sa_flags = SA_RESETHAND|SA_SIGINFO;
1.51 + sigaction( SIGSEGV, &sa, NULL );
1.55 void fwrite_string( const char *s, FILE *f )