Linux使用coredump文件调试系列:2 编译可产生coredump文件的程序并测试

1886 人浏览 | 时间: 2018-12-05 17:18:21 | 作者: codexia 会员文章,禁止转载

    我们在《Linux使用coredump文件调试系列1-设置生成coredump文件》中已经讲解了如何去设置生成coredump文件。设置好了之后,我们现在来编写一个测试程序,让这个程序可以产生coredump文件。
    要产生coredump文件,需要具备几个条件:
1.开启了coredump支持,系统才会去生成这个文件
    这是系列1文章里讲解的内容。如果没有设置好,是没有办法生成的。
2.需要编译的程序带有-g标志去主动告诉系统要产生
    如果正常编译如:

gcc test.c -o test
    这样是不会产生coredump文件的。尽管系统允许产生,你不产生,那也是不会产生的。这是你情我愿的事情,需要双方都来电。要产生coredump文件,我们只要加入-g标志就行了,如下:
gcc -g test.c -o test
3.程序需要遇到会崩溃的代码才会产生
    一个正常运行的程序,没有遇到任何错误,当然也不会产生的。所以如果要产生coredump文件,我们就需要主动写一个这样的代码。那么有哪些代码会产生崩溃呢?一般也就是内存非法访问、内存越界、其他错误等等。

    好了,三个条件都具备,就可以产生coredump文件了。
    下面给大家一段测试代码:
#include <stdio.h>
void b()
{
int a;
scanf("%d",a);
}
void go()
{
b();
}
int main()
{
go();
return 0;
}
当前文章为会员文章,请前往[用户中心]开通会员后继续阅读。

相关阅读