Segmentation fault (core dumped):分割故障(核心转储)问题定位

在linux下变成有时会出现这样的情况,编译时没有error,但是执行时会出现Segmentation fault (core dumped)

我们先必须需要知道 core dumped是什么?其实就是核心转储。进程异常终止,进程用户空间的数据就会被写到磁盘。但是linux下一般不会产生core文件

我们应该怎样去解决呢?这里我们就需要用到gdb调试工具。

1、首先使用ulimit -a查看你的core file size是否为0.如果不是的话就请跳到步骤3, 如果是的话,请接着看下面的步骤。

2、然后使用ulimit -c 1024命令修改core file size。这里我们暂且把修改为1024吧。不放心的话可以再使用ulimit -a查看core file size

3、下面再次运行程序让其错误信息存储于core file并使用ll查看core file信息以便于使用gdb。


4、接下来我们使用gdb调试工具查看错误原因,使用命令gdb core-file core定位error(关于这一句命令,先使用ll命令查看是因为要知道你的core file名称才好使用gdb调试)。可以看到我的c++代码error应该是Program terminated with signal SIGSEGV, Segmentation fault.


猜你喜欢

转载自blog.csdn.net/dzhongjie/article/details/80280192
今日推荐