我正在尝试找出我的一个 Linux 应用程序崩溃的原因。但我不知道核心去哪里了。
cat /proc/sys/kernel/core_pattern
core.%e.%p
任何想法?
答案1
系统使用系统通常配置为将核心转储到
/var/lib/systemd/coredump/
您可以使用该coredumpctl
命令列出核心转储。也可以看看迁移到 systemd 后不再有 coredumps
答案2
核心转储写入崩溃时进程的当前目录中。
当然,需要启用核心转储,默认情况下,这些转储通常是禁用的。检查 的输出ulimit -c
,如果为 0,则不会写入任何核心文件。运行ulimit -c unlimited
以启用核心转储;这是每个进程的设置,由该进程启动的进程继承。
如果应该生成核心转储但您不知道在哪里,那么您可以再次启动该进程(如果不会立即崩溃),然后通过执行“ ls -l /proc/$pid/cwd
where $pid
is the process ID”来检查其工作目录。该链接将指向该进程的当前工作目录。很可能会有核心转储。否则你需要find
在整个系统上运行......