建立与查看linux core文件的实验
1) ulimit -c unlimited
2) vim foo.c
3)
#include <stdio.h>
static void sub(void);
int main(void)
{
sub();
return 0;
}
static void sub(void)
{
int *p = NULL;
/* derefernce a null pointer, expect core dump. */
printf("%d", *p);
}
4) gcc -Wall -g foo.c
注意,一定要用-g参数,不然一会用gdb打开有问题。还有就是不要在编译时,加上优化选项(例如:-O1之类, -Os之类),不然有可能,定位那个错误,有可能不准确。
5) ./a.out
Segmentation fault
6) ls -al core*
查看一下,core文件,有没有被生成。我这里默认生成文件就是core
7) gdb ./a.out --core=core
用gdb打开后,会注明在那一个文件,那一行里面出错了。调试什么段错误的利器!!