# dmesg
[139503.905960] a.out[85431]: segfault at 1458 ip 0000000000400ad0 sp 00007ffd2b619100 error 6 in a.out[400000+2000]
# cat /var/log/messages | grep segfault
Jul 6 21:54:20 localhost kernel: a.out[85192]: segfault at 1458 ip 0000000000400a44 sp 00007ffe51693d30 error 6 in a.out[400000+2000]
#dmesg | grep segfault
[139503.905960] a.out[85431]: segfault at 1458 ip 0000000000400ad0 sp 00007ffd2b619100 error 6 in a.out[400000+2000]
error 6 :
110
1: 表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
1: 表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
0: 表示访问的非法地址根本没有对应的页面,也就是无效地址,值为1表示没有足够的权限访问非法地址的内容
把core的段错误信息保存:
# ulimit -c
0
# vim /root/.bash_profile
加 ulimit -S -c unlimited
# source /root/.bash_profile
# ulimit -c
unlimited
#gdb -c core a.out 生成的信息在当前目录下