Mercurial > projects > doodle
comparison doodle/core/backtrace.d @ 66:43cc2135ced0
Some code cleanups
author | "David Bryant <bagnose@gmail.com>" |
---|---|
date | Thu, 12 Aug 2010 22:43:42 +0930 |
parents | dfa1e219eafe |
children | 100dd23c7bdf |
comparison
equal
deleted
inserted
replaced
65:b4676efb884a | 66:43cc2135ced0 |
---|---|
22 | 22 |
23 extern (C) int backtrace(void**, size_t); | 23 extern (C) int backtrace(void**, size_t); |
24 extern (C) char** backtrace_symbols(void**, int); | 24 extern (C) char** backtrace_symbols(void**, int); |
25 | 25 |
26 // signal handler for otherwise-fatal thread-specific signals | 26 // signal handler for otherwise-fatal thread-specific signals |
27 extern (C) void signal_handler(int sig) { | 27 extern (C) void signalHandler(int sig) { |
28 string name() { | 28 string name() { |
29 switch (sig) { | 29 switch (sig) { |
30 case SIGSEGV: return "SIGSEGV"; | 30 case SIGSEGV: return "SIGSEGV"; |
31 case SIGFPE: return "SIGFPE"; | 31 case SIGFPE: return "SIGFPE"; |
32 case SIGILL: return "SIGILL"; | 32 case SIGILL: return "SIGILL"; |
38 throw new Error(format("Got signal %s %s", sig, name)); | 38 throw new Error(format("Got signal %s %s", sig, name)); |
39 } | 39 } |
40 | 40 |
41 shared static this() { | 41 shared static this() { |
42 // set up shared signal handlers for fatal thread-specific signals | 42 // set up shared signal handlers for fatal thread-specific signals |
43 signal(SIGABRT, &signal_handler); | 43 signal(SIGABRT, &signalHandler); |
44 signal(SIGFPE, &signal_handler); | 44 signal(SIGFPE, &signalHandler); |
45 signal(SIGILL, &signal_handler); | 45 signal(SIGILL, &signalHandler); |
46 signal(SIGSEGV, &signal_handler); | 46 signal(SIGSEGV, &signalHandler); |
47 } | 47 } |
48 | 48 |
49 static this() { | 49 static this() { |
50 // register our trace handler for each thread | 50 // register our trace handler for each thread |
51 Runtime.traceHandler = &traceHandler; | 51 Runtime.traceHandler = &traceHandler; |