一 代码
#include <stdio.h>
int main(){
int b=1;
int* a;
a=NULL;
*a=b;
return 0;
}
二 编译并运行
# 编译
[root@localhost charpter05]# g++ -g -o test 0505.cpp
# 查看core存放目录
[root@localhost charpter05]# cat /proc/sys/kernel/core_pattern
/data/coredump/core.%e.%p
# 创建core目录
[root@localhost charpter05]# mkdir -p /data/coredump
# 执行程序
[root@localhost charpter05]# ./test
Segmentation fault (core dumped)
# 将core文件拷贝到程序所在目录以便于分析
[root@localhost charpter05]# cp /data/coredump/core.test.1223 core.test.1223
三 core分析
1 分析该coredump文件的ELF头部
[root@localhost charpter05]# readelf -h core.test.1223
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endia