2 #include <aura/private.h>
5 #ifndef AURA_DISABLE_BACKTRACE
11 int BUG(
struct aura_node *node,
const char *msg, ...)
15 slogv(0, SLOG_FATAL, msg, ap);
35 void *array[TRACE_LEN];
40 aura_transport_dump_usage();
42 #ifndef AURA_DISABLE_BACKTRACE
43 size = backtrace (array, TRACE_LEN);
44 strings = backtrace_symbols (array, size);
46 slog(0, SLOG_DEBUG,
"--- Dumping aura stack (%d entries) ---", size);
47 for (i = 0; i <
size; i++)
48 slog(0, SLOG_DEBUG,
"%s", strings[i]);
50 slog(0, SLOG_DEBUG,
"Stackdump disabled. Perhaps your C library sucks");
63 static void handler(
int sig, siginfo_t *si,
void *unused)
65 slog(0, SLOG_FATAL,
"AURA got a segmentation fault, this is bad");
72 sa.sa_flags = SA_SIGINFO;
73 sigemptyset(&sa.sa_mask);
74 sa.sa_sigaction = handler;
75 sigaction(SIGSEGV, &sa, NULL);
void __attribute__((noreturn))