首先,你的Segmentation Fault错误必须要能重现(废话…)。

   然后,依参照下面的步骤来操作:(1)无论你是用Makefile来编译,还是直接在命令行手工输入命令来编译,都应该加上 -g 选项。(2)一般来说,在默认情况下,在程序崩溃时,core文件是不生成的(很多Linux发行版在默认时禁止生成核心文件)。所以,你必须修改这个默认选项,在命令行执行:ulimit -c unlimited表示不限制生成的core文件的大小。(3)运行你的程序,不管用什么方法,使之重现Segmentation Fault错误。(4)这时,你会发现在你程序同一目录下,生成了一个文件名为 core.*** 的文件,即核心文件。例如,“core.15667”这样的文件。(5)用GDB调试它。假设你的可执行程序名为test,则在命令行执行:gdb test core.15667然后可能会显示出一堆信息:

GNU gdb Fedora (6.8-27.el5)

Copyright (C) 2008 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law. Type “show copying”

and “show warranty” for details.

This GDB was configured as “i386-redhat-linux-gnu”…

warning: Can’t read pathname for load map: Input/output error.

…………………(中间还有很多内容,此处省略)……………………………

Loaded symbols for /usr/lib/libgpg-error.so.0

Core was generated by `./test’.

Program terminated with signal 11, Segmentation fault.

[New process 15668]

0 0x0804c760 in thread _handler () at test.cpp:707

707 CDev* cur_dev = *it_d;

然后我们输入并执行命令 bt :

(gdb) bt

就会得到类似于下面的信息:

0 0x0804c760 in thread _handler () at test.cpp:707

1 0x006b149b in start_thread () from /lib/libpthread.so.0

2 0x0060842e in clone () from /lib/libc.so.6

于是,我们一眼就看出来了:程序是在第707行使用指针时出的问题。

Segmentation Fault错误相关推荐

  1. onvif规范的实现:onvif开发常用调试方法 和常见的segmentation fault错误

    在前几篇中,虽然已经实现了rtsp视频流的对接,但是还要做的工作还非常多,onvif本来就是一个覆盖面非常广的一个协议,每一个功能都要填充大量的函数.而且稍不注意就会出现segmentation fa ...

  2. Linux内存显示错误,使用mmap读取内存的内容,出现“Segmentation fault”错误,请

    使用mmap读取内存的内容,出现"Segmentation fault"错误,请帮看看原因. 这个程序的目的是用于功能调试的,正在读取一块网卡使用的dma内存空间,想看看里面的数据 ...

  3. 用GDB调试Segmentation Fault错误

    调试Linux程序的时候,出现Segmentation Fault是最郁闷的事情了,程序代码量很大的时候,可能花很多时间都找不到出错原因.        这里介绍一种对你调试Segmentation ...

  4. 由char* 引发的Segmentation fault错误

    在学习形参带const限定符时,意外遇到Segmentation fault的bug问题.C程序是在linux环境下运行. 在维基百科上是这样解释Segmentation fault,存储器区段错误( ...

  5. centos使用yum时提示Segmentation fault错误的深入研究

    头一次用CentOS,结果就遇到了在用yum时出现了centos使用yum时提示Segmentation fault,这个错误的解决方法网上不少,但是我测试了一下发现不是那么回事,最后几经研究终于搞定 ...

  6. ubuntu Segmentation Fault错误原因

    一. 什么是"Segmentation fault in Linux" 所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位 ...

  7. Segmentation Fault 错误原因总结及解决方法

  8. bash 2_quantize.sh遇到错误2_quantize.sh: line 7: 29380 Segmentation fault解决方法

    使用DNNDK-YOLOV3 bash 2_quantize.sh, 出现2_quantize.sh: line 7: 29380 Segmentation fault错误,原因是:检查yolov3- ...

  9. 解决sqlplus的segmentation fault或hang问题

    sqlplus应当是DBA 1.0时代使用最为频繁的管理工具,经常有经验丰富的老DBA会提到自己敲过几万次的sqlplus:),但有的时候这个吃饭家伙也会不好用,偶尔还会出现Segmentation ...

  10. NVIDIA Jetson TK1 rosrun rviz segmentation fault的解决方法

    NVIDIA Jetson TK1 rosrun rviz segmentation fault的解决方法 在NVIDIA Jetson TK1开发版上运行rosrun rviz rviz出现segm ...

最新文章

  1. 两地控制的项目要求_项目两地控制灯照明线路的安装.ppt
  2. linux bash: sqlplus: command not found 错误处理
  3. antd动态隐藏表格中的一列_有很多excel表格,如何快速合并到一张表格里?
  4. Render CRM Survey in Mobile
  5. java 中通过 Lettuce 来操作 Redis
  6. Java关键字finally
  7. 车厢重组(信息学奥赛一本通-T1310)
  8. 需求迭代:迭代需求矩阵
  9. g6-editor 使用
  10. Java数组排序的方法
  11. Matlab如何设置图中坐标以10的次方显示
  12. python模块以及导入出现ImportError: No module named 'xxx'问题
  13. veeam 备份文件服务器,如何用veeam给windows服务器做备份?
  14. 8. 数仓开发之 DIM 层
  15. 【数据挖掘实验】利用朴素贝叶斯方法对百万搜狐新闻文本数据进行分类
  16. 18种抗癌果蔬排行榜
  17. Unity3D手游开发实践
  18. 3055. 字符频率
  19. 神经元的结构图手绘,神经元图片手绘图
  20. linux u盘文件乱码,linux挂载u盘,汉字乱码,怎么处理

热门文章

  1. 《算法概论》8.3题
  2. ES-elasticsearch
  3. 开博感言以及渣硕的不定期更新的人生感想
  4. grafana zabbix 模板_Zabbix + Grafana 可视化
  5. php黑名单绕过,某些环境下绕过php后缀黑名单上传webshell
  6. 如何快速使用计算机键盘,教你电脑键盘不能用怎么快速解决!
  7. html超出的部分自动隐藏,html中内容超出标签不强制换行和超出宽度自动隐藏超出部分并显示省略号...
  8. 利用Labelimg制作图片数据集用于自己的深度学习训练。
  9. 基于遥感的自然生态环境检测——实验一:SPOT全色影像正射纠正
  10. Open Live Writer已停止工作的解决办法