当前位置: 技术问答>linux和unix
如何在拦截到sigsegv信号时打印出程序的调用栈?
来源: 互联网 发布时间:2015-10-23
本文导语: 最近有个程序老core,但由于特殊原因,不能产生core文件,那么我想拦截到此信号后再将调用栈打印出来,以查出是在哪儿出了问题。不知能否做到。 | #include void PrintStack() { void * ar...
最近有个程序老core,但由于特殊原因,不能产生core文件,那么我想拦截到此信号后再将调用栈打印出来,以查出是在哪儿出了问题。不知能否做到。
|
#include
void PrintStack()
{
void * array[25];
int nSize = backtrace(array, 25);
char ** symbols = backtrace_symbols(array, nSize);
printf("---------- stack ----------n");
for (int i = 0; i
void PrintStack()
{
void * array[25];
int nSize = backtrace(array, 25);
char ** symbols = backtrace_symbols(array, nSize);
printf("---------- stack ----------n");
for (int i = 0; i