Unix 用gdb分析core dump文件

时间:2014-12-11 15:26:13   收藏:0   阅读:134

产生core文件条件

用ulimit -c 指定core文件大小来开启core文件的生成,如:ulimit -c unlimited

 

用gdb分析core文件的条件

可执行程序在编译时,需加入-g参数,否则gdb无法找到symbol信息,从而无法定位问题。

例如,如下两个cpp文件中,test.cpp会导致crash。

// test.cpp

void testCrash()
{
  int *p = 0;
  *p = 3;  
}
// main.cpp

#include <stdio.h>

void testCrash();

int main()
{
  testCrash();
  return0;
}

在编译时,如下的-g为必须,否则无法定位core文件中问题。

g++ -c -g test.cpp

g++ -c main.cpp

g++ test.o main.o -o main

 

分析core文件所需文件

 

用gdb分析core文件

启动gdb:

进入gdb命令行后,会直接打印出导致crash的相关信息,也可执行如下命令详细查看。

gdb命令行:

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!