再谈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‘
时间: 2024-12-22 12:47:24

再谈Segmentation fault (core dumped)问题 -查找段错误原因的相关文章

Linux程序Segmentation fault (core dumped)

1 问题原因 Segmentation fault (core dumped)多为内存不当操作造成.空指针.野指针的读写操作,数组越界访问,破坏常量等.对每个指针声明后进行初始化为NULL是避免这个问题的好办法.排除此问题的最好办法则是调试. 更为详细的原因: (1)内存访问越界 a) 由于使用错误的下标,导致数组访问越界b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符c) 使用strcpy, strcat, sprintf, strcmp, strcas

ros rviz: Segmentation fault (core dumped) 与 [rviz -1] process has died [pid 10134, exit code -6]

1. 执行roslaunch 文件打开 某rviz文件.出现了例如以下的错误: [rviz-1] process has died [pid 10134, exit code -6] 2. 执行rosrun rviz rviz  正常,执行某公布图像的节点, 当用rviz加入 这一图像topic时,出现了例如以下的错误: Segmentation fault (core dumped) 我的问题出自解决问题QTerro:Size mismatch for type 'QPaintBufferCa

Python 运行时出现 Segmentation fault (core dumped) 解决办法

在VSCode添加某插件后,Debug出现Segmentation fault (core dumped) 解决方案,在当前environment下运行: conda update --all 原文地址:https://www.cnblogs.com/xbit/p/10075777.html

Segmentation fault (core dumped)

第一步,打开虚拟机,打开终端 第二步,输入#ulimit -c unlimited 打开core dump 第三步,编译程序,输入#gcc -g seg1.c -o seg1 第四步,输入ls查看有没有core文件,然后调用#gdb ./seg1 core 查看错误信息,第一个程序是空指针赋值,第二个程序错误是只读字符串赋值错误,都能显示出来 第五步,关闭core dump 输入 #ulimit -c 0 就可以了

你的C/C++程序为什么无法运行?揭秘Segmentation fault (core dumped)(1)

什么让你对C/C++如此恐惧? C/C++语言如此的强大,让人爱不释手,但晦涩的语法和诸多的编程陷阱让人头皮发麻. 段错误 我们通常遇到的最多的错误莫过于段错误,下面是一个经典的段错误,你没遇到过?亲,那不可能~ 好吧,一般这样的错误大都由指针引起,看看我们的代码都写了些什么: #include "stdio.h" #include "string.h" #include "stdlib.h" void func1(char ** dest,ch

fwrite时显示Segmentation fault (core dumped)

在实际开发中, 一定要对fopen的返回值进行校验. 此时可能就是fopen返回值为NULL.

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

安装dgl 并运行的时候,出现了如上错误,很是郁闷:使用 gdb python; run train.py 进行调试,发现是torch的问题:我猜测估计是torch 安装的版本过于新:于是重新安装 1.0.0 版本; 解决上述问题: dgl-cu90 0.4.1 torch 1.0.0 ~/Desktop/dgl/examples/pytorch/gcn$ python train.py --dataset cora --gpu 1 保持更新,更多内容请关注 cnblogs.com/xuyaow

Segmentation fault(Core Dump)

Segmentation fault 这个提示还是比较常见的,这个提示就是段错误,这是翻译还是十分恰当的. Core Dump 有的时候给我们呈现的翻译很有趣是"吐核",但是实际上比较贴切的翻译是核心转储(是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件.这种信息往往用于调试),这个"吐核"的产生和王安博士有着一些关联,其实"吐核"这个词形容的很恰当,就是核心内存吐出来. 出现这种错误

core dumped问题查找以及使用gdb、QT下gdbserver使用

一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件. 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,许多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,我们可