首页 > 代码库 > 再谈Segmentation fault (core dumped)问题 -查找段错误原因
再谈Segmentation fault (core dumped)问题 -查找段错误原因
再谈Segmentation fault (core dumped)问题 -查找段错误原因
在前一篇文章“Segmentation fault (core dumped) ”有说了具体core dumped产生的原因。
下面主要来介绍下问题的解决与查找,在linux下一般都使用gdb进行调试,那今天我就以Ubuntu 14.04环境作为介绍
来查找正在的core dumped的原因。需要说明的是,你在编译程序的时候要加调试选项 -g。
$ gcc -o app reverse.c -g
语法:gdb 应用 core
$ gdb app core.36129
这样出来的会有一堆东西,咱们先别管,在输入行中输入where.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `./app‘.
Program terminated with signal 11, Segmentation fault.
#0 0x0000003262a56ed0 in _IO_vfscanf_internal () from /lib64/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64
(gdb) where
#0 0x0000003262a56ed0 in _IO_vfscanf_internal () from /lib64/libc.so.6
#1 0x0000003262a646cd in __isoc99_scanf () from /lib64/libc.so.6
#2 0x0000000000400607 in main () at reverse.c:10
(gdb)
这就回显示就是core是发生在什么地方,首先你看的顺序从列表的下方往上看,因为这是一个“栈”的顺序。
你可以马上可以看到是什么原因导致的,有兴趣的可以试试看。
另外需要注意的是,如果你的机器上跑很多的应用,你生成的core又不知道是哪个应用产生的,你可以通过下列命令
进行查看:file core
[/ipla_app01/test/]$ l
total 124
-rwxrwxr-x 1 ipla_app01 ipla_app01 8438 Oct 8 14:12 app
-rw------- 1 ipla_app01 ipla_app01 200704 Oct 8 14:17 core.36129
-rw-rw-r-- 1 ipla_app01 ipla_app01 386 Oct 8 14:11 reverse.c
[/ipla_app01/test/]$ file core.36129
core.36129: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from ‘./app‘
再谈Segmentation fault (core dumped)问题 -查找段错误原因
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。