Linux gdb 调试coredump文件的尝试

gdb的安装

Linux下:

:yum install gdb

Mac OSX下:

:brew install gdb
coredump的配置
:ulimit -c unlimited 

coredump可以参考:coredump的介绍及产生的几种可能情况

gcc选项
  • -g:在可执行文件中加入源码信息,比如:可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件都嵌入到可执行文件中,而是在调试时必须保证gdb能找到源文件。这些调试信息包括行号、变量的类型和作用域、函数名字、函数参数和函数的作用域等源文件的特性。

GCC -g -g3 -ggdb -ggdb3 -gstabs -gstabs+ 选项

GCC 优化选项 -O -O0 -O1 -O2 -O3 -Os 简单介绍

简单例子

:cat main.c
#include <stdlib.h>

int main()
{
    char *c = (char*)malloc(100);
    free(c);
    free(c);
    return 0;
}

命令行输入:

:ulimit -c unlimited
:gcc -ggdb -O0 main.c -o main
:./main

它没事。什么文件都没有。为什么呢?

发布了110 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/LU_ZHAO/article/details/104773395
今日推荐