在哪里搜索由Linux应用程序崩溃生成的核心文件?


19

我试图找出我的Linux应用程序之一崩溃的原因。但是我不知道核心的发展方向。

cat /proc/sys/kernel/core_pattern
core.%e.%p

任何想法?

Answers:


23

崩溃时,核心转储将写入进程的当前目录中。

当然,需要启用核心转储,默认情况下通常将其禁用。检查的输出ulimit -c,如果为0,则不会写入任何核心文件。运行ulimit -c unlimited以启用核心转储;这是每个进程的设置,由该进程启动的进程继承。

如果应该生成核心转储,但您不知道在哪里,则可以再次启动该进程(如果它不会立即崩溃),然后通过在ls -l /proc/$pid/cwd哪里检查$pid进程的进程ID来检查其工作目录。该链接将指向该进程的当前工作目录。核心转储很有可能在那里。否则,您需要find在整个系统上运行...


3
我已经检查了ulimit -c其无限,但在当前进程目录中仍然没有任何内容。
dcds 2015年

1
应用程序本身可能检测到致命错误并中止,即它不是“真正的”崩溃,例如分段违规或类似事件,它生成核心转储。由于您未提供有关该应用程序的信息,因此无法知道。
wurtel

1
我故意做一个空指针肯定是崩溃的原因。
dcds 2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.