当我退出运行命令Cntrl + \
它显示\Quit (core dumped)
并且其可以创建包含该程序的存储图像的核心文件。但是我在哪里可以找到那个文件?
当进程转储核心时,/proc/sys/kernel/core_pattern
会执行中配置的进程,来自this stackoverflow question。
如果你的 init 进程是 systemd,你应该找到这样的/proc/sys/kernel/core_pattern
文件内容:
|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %e
从systemd-coredump我们可以读到:
默认情况下,systemd-coredump 会将包含回溯的核心转储记录到日志中,并将核心转储本身存储在 /var/lib/systemd/coredump 中的外部文件中。
/var/lib/systemd/coredump
默认情况下,核心转储应该可以在您的系统日志和目录中访问。
在我的系统上发送SIGQUIT
信号后的核心转储示例sleep infinity
:
$ journalctl COREDUMP_SIGNAL_NAME=SIGQUIT
-- Logs begin at Sun 2019-05-19 10:51:52 CEST, end at Sun 2019-09-01 18:14:43 CEST. --
wrz 01 18:03:32 chors systemd-coredump[24169]: Process 24167 (sleep) of user 1000 dumped core.
Stack trace of thread 24167:
#0 0x00007fd96c53c338 __nanosleep (libc.so.6)
#1 0x000055fb279394a5 n/a (sleep)
#2 0x000055fb279392a1 n/a (sleep)
#3 0x000055fb27936221 n/a (sleep)
#4 0x00007fd96c499ee3 __libc_start_main (libc.so.6)
#5 0x000055fb279362fe n/a (sleep)
将不同的输出选项与 journalctl 结合使用时,可获得更多输出。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句