首页 > 解决方案 > 生成核心转储时内部会发生什么

问题描述

本题主要针对Linux操作系统。以下命令在系统中启用核心转储生成。

ulimit -S -c 无限制

有人可以提供有关任何应用程序崩溃和生成核心转储时内部发生的情况的更多详细信息。

  1. 谁跟踪申请的终止
  2. 谁生成核心转储
  3. 它是如何产生的?我们可以手动生成核心转储吗?
  4. 内部为此目的所需的所有软件包是什么?

任何参考都会有很大帮助。

提前致谢。

标签: linuxdebuggingsystemcoredump

解决方案


我不久前创建了一篇简短的博客文章,旨在回答问题 1 和 2 以及问题 3 的一部分 https://venshare.com/blog/what-is-a-core-dump

对于 3 的另一部分 - 您可以通过向其发送信号来手动生成 coredump,如此处记录的 https://man7.org/linux/man-pages/man7/signal.7.html

例如,要发送信号,例如 SIGQUIT,请使用 kill 命令

kill -3 [pid]
  1. 您不需要在操作系统上安装任何东西,只需确保设置了 ulimit 并将 kernel.core_pattern 设置为捕获机制。您还应该注意可能与某些进程一起使用的 suid_dumpable 位。 https://serverfault.com/questions/56800/on-redhat-what-does-kernel-suid-dumpable-1-mean

从以下 Ben 的观点更新


推荐阅读