- #include <stdio.h>
- void func(){
- int *p = NULL;
- printf("*p:%d\n", *p);// 断错误
- }
- int main(void){
- func();
- return 0;
- }
1. 首先设置开关 设置 core 文件的大小为 1000K 存放数据
- [oracle@xweb1 clession]$ ulimit -c
- 0
- [oracle@xweb1 clession]$ ulimit -c 1000
2. 编译 - g 调试程序如下
- gcc -g -o bin/gdb_core src/gdb_core.c
- [oracle@xweb1 clession]$ bin/gdb_core
段错误 (core dumped)
core dumped 核心已转存
3. 利用 gdb 定位断错误的位置
命令行如下: gdb 可执行文件 core 文件
[oracle@xweb1 clession]$ gdb bin/gdb_core core.15700
4. 查看错误
直接定位到了第 4 行有错误
来源: http://www.bubuko.com/infodetail-2530422.html