相关疑难解决方法(0)

/var/crash 中没有核心转储

我想了解一下核心转储是如何工作的。

我使用 test.c 文件生成核心转储:

#include <stdio.h>                                                              

void foo()                                                                      
{                                                                               
        int *ptr = 0;                                                           
        *ptr = 7;                                                               
}                                                                               

int main()                                                                      
{                                                                               
        foo();                                                                  
        return 0;                                                               
}
Run Code Online (Sandbox Code Playgroud)

我编译用

gcc test.c -o test
Run Code Online (Sandbox Code Playgroud)

当我运行 ./test 时,它给了我以下消息

Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

我的档案

/proc/sys/kernel/core_pattern 
Run Code Online (Sandbox Code Playgroud)

包含:

|/usr/share/apport/apport %p %s %c %d %P
Run Code Online (Sandbox Code Playgroud)

我检查了我是否有写入该目录的权限

/var/crash/
Run Code Online (Sandbox Code Playgroud)

但在核心转储之后,该文件夹(/var/crash/)中没有任何内容。我使用的是 Linux 版本 17.04。你知道这里会出什么问题吗?

编辑

我忘了提及我设置了限制:

ulimit -c unlimited
Run Code Online (Sandbox Code Playgroud)

所以输出

ulimit -c
Run Code Online (Sandbox Code Playgroud)

内容如下:

unlimited
Run Code Online (Sandbox Code Playgroud)

我什至尝试按照他们在如何启用 apport部分中所说的进行操作,因此我在前面添加了一个井号

'problem_types': ['Bug', 'Package']
Run Code Online (Sandbox Code Playgroud)

但尽管如此,在 /var/cash 中找不到核心转储

linux coredump

6
推荐指数
1
解决办法
8992
查看次数

标签 统计

coredump ×1

linux ×1