ReadingList:

  • https://mytechrants.wordpress.com/2009/05/22/debugging-a-segmentation-fault-using-gdb/
  • https://wiki.archlinux.org/index.php/Step-by-step_debugging_guide
  • http://www.cprogramming.com/debugging/segfaults.html

简述:

  1. 首先在编译生成程序的时候要使用“-g”选项使得编译文件带有调试信息,若果没有调试信息,gdb无法工作

    gcc -g -o hello hello.c
  2. 使得Linux可以在段错误时生成的core dump文件大小无限
    ulimit -c unlimited
  3. 运行可能出错的程序,直到出现“Segmentation fault(core dumped)”信息,这是在程序工作目录下会生成一个core文件
  4. 用gdb分析core文件
    gdb {executable} {dump file}
    
    eg. gdb hello core.
  5. 如果gdb调试符号正常加载,查看堆栈,找到出错位置(哪个函数,哪个文件,哪一行出错)
    (gdb) bt   //查看出错时的堆栈
    (bt = backtrace .. prints stack strace)
  6. 还可以分析每个栈帧frame中的变量情况
    (gdb) frame {num}
    eg. (gdb) frame 2 and use:
    (gdb) info locals //查看局部变量
    (gdb) info args //查看参数
  7. 通过以上步骤,可以定位到出错位置,找出出错原因。

Segmentation fault(core dumped) 调试的更多相关文章

  1. Segmentation fault (core dumped) 错误的一种解决场景

    错误类型 Segmentation fault (core dumped) 产生原因 Segmentation fault 段错误. Core Dump 核心转储(是操作系统在进程收到某些信号而终止运 ...

  2. Linux程序Segmentation fault (core dumped)

    1 问题原因 Segmentation fault (core dumped)多为内存不当操作造成.空指针.野指针的读写操作,数组越界访问,破坏常量等.对每个指针声明后进行初始化为NULL是避免这个问 ...

  3. Segmentation fault (core dumped)

    问题: 在Linux中实现快速排序时,没有加入终止条件,结果出现Segmentation fault (core dumped)这个问题,Segmentation fault (core dumped ...

  4. 关于Segmentation fault (core dumped)几个简单问题的整理

    有的程序可以通过编译,但在运行时会出现Segment fault(段错误).这通常都是指针错误引起的.但这不像编译错误一样会提示到文件一行,而是没有任何信息.一种办法是用gdb的step, 一步一步寻 ...

  5. 关于Segmentation fault (core dumped)

    有的程序可以通过编译,但在运行时会出现Segment fault(段错误).这通常都是指针错误引起的.但这不像编译错误一样会提示到文件一行,而是没有任何信息.一种办法是用gdb的step, 一步一步寻 ...

  6. [CentOS7] Segmentation fault (core dumped),但是在主机上找不到core文件

    1.问题描述 程序执行报:Segmentation fault (core dumped),但是在主机上找不到core文件 2.如何让系统生成core file /home>ulimit -ac ...

  7. VSCode添加某个插件后,Python 运行时出现Segmentation fault (core dumped) 解决办法

    在VSCode添加某个插件后,Debug出现Segmentation fault (core dumped) 解决方案,在当前environment下运行: conda update --all

  8. 用GDB调试程序的设置 Segmentation fault(Core Dump)调试

    在写wifi库的时候碰见一个 Segmentation fault(Core Dump) 所以需要用GDB调试下. 在cmake的时候,修改CMakeLists.txt set(CMAKE_C_FLA ...

  9. conda pip 安装 dgl 并运行demo 出现:Segmentation fault (core dumped) 错误

    安装dgl 并运行的时候,出现了如上错误,很是郁闷:使用 gdb python; run train.py 进行调试,发现是torch的问题:我猜测估计是torch 安装的版本过于新:于是重新安装 1 ...

随机推荐

  1. luogu3371 【模板】单源最短路径 dijkstra堆优化

    #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> ...

  2. webdriver高级应用- 测试过程中发生异常或断言失败时进行屏幕截图

    封装了三个类来实现这个功能: 1.DataUtil.py 用于获取当前的日期以及时间,用于生成保存截图文件的目录名,代码如下: #encoding=utf-8 import time from dat ...

  3. 转 关于oracle 分区表 表空间以及索引的总结

    关于oracle的表空间,分区表,以及索引的总结关键字: oracle, 表空间, 分区表, 索引 上周第一次做数据库测试碰到了很多问题特此总结: 表空间: Oracle的UNDOTBS01.DBF文 ...

  4. mongo以及mysql常用语句

    db.user.find({']}}).pretty(); db.user.find({primaryPhone:).forEach(function(user){print('my phonenum ...

  5. poj1006 中国剩余定理&&中国剩余定理解析

    poj 1006 题的思路不是很难的,可以转化数学式: 现设 num 是下一个相同日子距离开始的天数 p,e,i,d 如题中所设! 那么就可以得到三个式子:( num + d ) % 23 == p: ...

  6. git统计日期之间的代码改动行数

    git log --pretty=tformat: --since ==2016-10-25 --until=2016-10-27   --numstat | awk '{ add += $1 ; s ...

  7. 模型表单ModleForm

    官方文档网址   http://python.usyiyi.cn/documents/django_182/topics/forms/modelforms.html 模型表单的应用场景 如果你正在构建 ...

  8. 关于postman使用上发现的一点问题

    之前后台用的java,一直用的postman测试接口数据,之前不管是get.post.delete.put请求都是在param传递的数据,java下面是没问题可以测试的.但是今天自己写Node发现po ...

  9. Foj 2148 二维几何(点是否在三角形内)

    题目大意:给n个坐标(不存在三点共线的点),求能够组成多少个凸四边形. #include<iostream> #include<cstdio> #include<cmat ...

  10. RTSP、 RTMP、HTTP的共同点、区别(转)

    共同点: 1:RTSP.RTMP.HTTP都是在应用层. 2:理论上RTSP.RTMP.HTTP都可以做直播和点播,但一般做直播用RTSP.RTMP,做点播用HTTP.做视频会议的时候原来用SIP协议 ...