/* * Some function in namespace to handle the * signal of segmentation fault. */ #ifndef SIGNALMANAGER_H_ #define SIGNALMANAGER_H_ // see http://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/063/6391/6391l3.html #include <csignal> #include <execinfo.h> #ifdef SIGNAL /* get REG_EIP from ucontext.h */ #ifndef __USE_GNU #define __USE_GNU #endif #include <ucontext.h> #if __WORDSIZE == 64 #define MY_REG_RIP REG_RIP #else #define MY_REG_RIP REG_EIP #endif #endif namespace SignalManager { void segfault_handler(int sig, siginfo_t *info, void *secret); void manage_segfault(); } #endif /* SIGNALMANAGER_H_ */