下载此文档

调用backtrack函数打印程序崩溃时.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
Linux调用backtrack函数打印程序崩溃时的
可以给本身的措施都加上这个对象,便于快速的找到过错吧,看到别人都是这么用的
#include
#include
#include
#include
//signal函数用法参考,backtrace_symbols函数用法参考void WidebrightSegvHandler(int signum){
void*array[10];
size_t size;
char*strings;
size_t i,j;
signal(signum,SIG_DFL);/*还原默认的信号处理赏罚handler*/
size=backtrace(array,10);
strings=(char*)backtrace_symbols(array,size);
fprintf(stderr,"widebright received SIGSEGV!Stack trace:\n");
for(i=0;i size;i++){
fprintf(stderr,"%d%s\n",i,strings[i]);
}
free(strings);
exit(1);
}
int invalide_pointer_error(char*p)
{
*p='d';//让这里出现一个拜访非法指针的过错
return 0;
}
void error_2(char*p)
{
invalide_pointer_error(p);
}
void error_1(char*p)
{
error_2(p);
}
void error_0(char*p)
{
error_1(p);
}
int main()
{
//设置信好的处理赏罚函数,种种信号的界说见signal(SIGSEGV,WidebrightSegvHandler);//SIGSEGV 11 Core Invalid memory reference signal(SIGABRT,WidebrightSegvHandler);//SIGABRT 6Core Abort signal from char*a=NULL;
error_0(a);
exit(0);
}
******@widebright:~/桌面$gcc ******@widebright:~/桌面$./ widebright received SIGSEGV!Stack trace:
0./[0x ]
1[0xb807a400]
2./[0x ]
3./[0x ]
4./[0x c]
5./[0x80486a9]
6/lib/tls/i686/cmov/(__libc_start_main+0xe5)[0xb7f19775]
然后为了定位过错,我们必要加上-g参数重新编译一个带调试信息的版本
******@widebright:~/桌面$gcc-g ******@widebright:~/桌面$./ wideb

调用backtrack函数打印程序崩溃时 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人bai1968104
  • 文件大小32 KB
  • 时间2018-08-14
最近更新