#define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include static struct sigaction sigsegv_act; void my_sigsegv_handler(int signum, siginfo_t *info, void *f) { void* buf[4096]; int size; char **strs; printf("bad address %p\n", info->si_addr); size = backtrace(buf, 4096); printf("backtrace(%d):\n", size); strs = backtrace_symbols(buf, size); if (strs) { int i; for (i = 0; i