gdb调试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 

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


测试:

1.编译成程序a.out

2.运行a.out后,生成了core文件"core"


用法一(调试进程):

gdb调试core文件与程序_第1张图片


用法二(调试core file):

gdb调试core文件与程序_第2张图片


写在最后:

core是内存的映像,所以调试core文件和调试会core的进程是不一样的,这里不要混淆了。core文件已经包含了进程运行时的环境变量等。


原文出自:http://blog.csdn.net/daiyudong2020/article/details/53073969


End;

你可能感兴趣的:(linux)