linux爱好者 2012-02-13
xxxxx是linux下编译生成的可执行程序
objdump -j .text -Sl xxxxx > obj.txt
记录堆栈信息函数
void SignalHandler(void)
{
void* array[10] = {0};
int size = 0;
char **strframe = NULL;
int i = 0, j = 0;
size = backtrace(array, 10);
strframe = (char **)backtrace_symbols(array, size);
printf("print call frame now:\n");
for(i = 0; i < size; i++)
{
printf("frame %d -- %s\n", i, strframe[i]);
}
if(strframe)
{
free(strframe);
strframe = NULL;
}
}
注册信号回调函数
signal(SIGSEGV, SignalHandler);