gdb调试core文件与程序

本文介绍了如何使用gdb调试Linux系统中生成的core文件。首先通过`gcc`编译带调试信息的程序,然后调整系统设置允许生成core文件。接着,通过`ulimit`命令设置core文件大小无限。当程序core dump后,可以使用gdb进行调试,分为直接调试进程和调试core文件两种方式。核心要点是core文件包含进程运行时的环境变量信息,调试core文件与调试崩溃时的进程有所不同。


gdb的用法:

This is the GNU debugger.  Usage:

    gdb [options] [executable-file [core-file or process-id]]
    gdb [options] --args executable-file [inferior-arguments ...]


假设有个会core的小程序makecore.c

#include <stdio.h>

int main(int argc, char *argv[])
{
    if (argc >= 2)
        printf("argv: %s\n", argv[1]);

    char *str = "";
    str[100] = 'a';

    printf("hello world\n");

    return 0;
}

编译加上 -g参数,用于调试:

gcc makecore.c -g


检查是否允许生成core file:

ulimit -a


设置允许生成core file:

ulimit -c unlimited


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值