我正在使用 Ubuntu 12.04 LTS。我写了一个简单的程序如下来创建崩溃
// null.c
#include<stdio.h>
int main()
{
int *p = NULL;
int k=*p;
printf("%d",sizeof(0));
return 0;
}
现在我用“gcc -g null.c”运行
然后是“./a.out”,输出符合预期。
Segmentation fault (core dumped)
现在我想使用 gdb 查看核心转储文件。我做了以下事情
- 我检查了当前目录,没有核心转储文件
- 我尝试使用内容“core.%e.%p”更改/proc/sys/kernel/core_pattern。但我无法写入文件。它说“Fsync 失败”。
- 我使用了“sudo vi /proc/sys/kernel/core_pattern”。仍然无法写入文件。
我想在当前目录中创建核心转储。现在做什么?
您真正的问题似乎不是“我的核心转储在哪里”,而是“我如何修改/proc/sys/kernel/core_pattern
".
sudo bash -c 'echo core.%e.%p > /proc/sys/kernel/core_pattern'
应该可以解决问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)