linux 程序崩溃 gdb调试coredump文件

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 程序崩溃 gdb调试coredump文件相关的知识,希望对你有一定的参考价值。

linux上程序崩溃起来挺烦人,不过linux 比较好的是有gdb.

1、生成coredump文件

echo "ulimit -c unlimited" >> /etc/profile

然后记得敲入命令

source /etc/profile

然后敲入命令:

ulimit –c

效果如下:

确认能否生成coredump文件,使用如下命令(使用时注意,我在测的时候会直接退出当前用户)

kill -s SIGSEGV $$

然后回到执行上述命令的路径下即可看到coredump文件,我这边生成的文件名为core.3477,依个人会随机生成不同的数字。

也可能文件名为core,

 

2、调试coredump文件

调试方式为: gdb program coredump文件

例如我的可执行文件为test, 生成的coredump文件为core.3533,则命令如下:

gdb test core.3533

显示如下图所示:

 

嗯,有的人运气好,直接就显示源代码了,如果你像我一样,接着用下面的命令

backtrace

打印堆栈信息。

我们看到最接近崩溃的地方在第8行

然后调用命令

frame 8

直接找到源代码的位置:

gdb调试coredump文件 - 绿色的麦田 - 博客园

以上是关于linux 程序崩溃 gdb调试coredump文件的主要内容,如果未能解决你的问题,请参考以下文章

gdb调试coredump文件

C++ gdb core调试 崩溃日志 都是问号??

在linux上使用gdb调试核心转储时如何知道线程的状态?

coredump导出堆内存

linux下 gdb+coredump 调试偶发crash的程序

Linux C/C++代码 使用gdb进行coredump调试