Segmentation fault (core dumped)

操作系统:Ubuntu 20.04
使用语言环境:C&C++

在运行程序过程中如果出现该问题,出现这个错误往往是因为代码内部问题,运行的时候是看不到详细错误原因的,只会提示Segmentation fault (core dumped),这时候需要使用GDB(“GNU symbolic debugger”)进行调试。

调试命令是:

gdb path/to/the/binary path/to/the/core/dump/file

path/to/the/binary指的是生成的二进制程序文件,path/to/the/core/dump/file是指core dump文件的位置,通常core dump生成是依赖于Apport,在运行前需要确认系统是否启用了该服务:

sudo systemctl enable apport.service 
或 
sudo service apport start

PS:注意path/to/the/core/dump/file,由于很多网络上很多相关资料都比较早,老版本Ubuntu生成的core dump默认路径是在"/var/crash/"(但我只能找到一个xxxx.crash文件,其实可以用crash文件手动生成core dump文件,但太麻烦了),在20.04版本上以相同路径查找的是找不到的,较新版本Ubuntu的core dump文件默认位置其实位于/var/lib/apport/coredump,格式应该是类似于:

在这里插入图片描述

应该是16.04版本之后更换了保存位置,当然也可以另外对保存路径进行设置,有需要的可以参考:http://sunyongfeng.com/201609/programmer/tools/coredump

你可能感兴趣的:(ubuntu)