linux应用程序崩溃生成的core文件在哪里找?

dcd*_*cds 35 linux directory-structure core-dump

我试图找出我的一个 Linux 应用程序崩溃的原因。但我不知道核心在哪里。

cat /proc/sys/kernel/core_pattern
core.%e.%p
Run Code Online (Sandbox Code Playgroud)

任何的想法?

wur*_*tel 38

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

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

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

  • 我已经检查了 ulimit -c 它是无限制的,但是当前进程目录中仍然没有任何内容。 (3认同)

小智 37

使用systemd 的系统通常配置为将内核转储到

/var/lib/systemd/coredump/
Run Code Online (Sandbox Code Playgroud)

您可以使用该coredumpctl命令列出核心转储。另请参阅no-more-coredumps-after-migrating-to-systemd

  • `/var/lib/systemd/coredump/` 不会包含任何核心文件,除非您安装了 `systemd-coredump` 然后重新运行崩溃的程序。 (7认同)