MDGSF Software Engineer

[GDB] 生成core文件调试

2017-03-02
GDB

core 文件生成

//test.c
#include <stdio.h>

const char * p = "hello world";

int main()
{
    ((char*)p)[0] = 'T';
    return 0;
}

g++ -g test.c

./a.out

Segmentation fault (core dumped)

但是,并没有生成core文件。

这是因为系统默认core文件大小为0。

可以使用ulimit -c修改。

ulimit -c

ulimit -c 1000

ulimit -c unlimited

gdb a.out core

gdb中键入where就可以查看到在哪里奔溃。

http://blog.csdn.net/longxj04/article/details/7716818

在下列条件下不产生 core 文件

(a)进程是设置用户 ID 的,而且当前用户并非程序文件的所有者。

(b)进程是设置组 ID 的,而且当前用户并非该程序文件的组所有者。

(c)用户没有写当前工作目录的权限。

(d)文件已存在,而且用户对该文件没有写权限。

(e)文件太大(RLIMIT_CORE 限制)。


weixingongzhonghao

上一篇 [C/C++] virtual

Comments

Content