我目前正在一个奇怪的 GNU chroot 环境中工作,它使用 abrt-hook-ccpp 为原始系统转储核心,但我所在的环境没有该实用程序。
systemd-coredump 在 chrooted 环境中也不存在,因此它不是一个选项。
我想访问核心文件。我可以退出 chroot 并将其远程复制到其他地方进行分析,而且我几乎不需要任何信息,因为我知道核心是在何时何地创建的。
我可以创建最简单、最基本的核心模式文件来将核心转储到当前(或任何)目录中吗?
答案1
从字面上理解就是core
。任何不是以 为前缀的|
文件名(在 chroot 中是绝对文件名,或相对于工作目录)。请参阅核心(5)更多细节。
请注意,当将转储直接写入文件(而非通过管道)时,崩溃进程的 RLIMIT_CORE ulimit 将被强制执行 - 如果为零,则不会创建核心文件。
您还可以为|
-format 模式创建自定义处理程序脚本(例如,您可以将“abrt-hook-ccpp”设为运行的常规 bash 脚本cat > /tmp/core
);处理程序只需从其标准输入读取转储并将其保存在某处。在这种情况下,不强制执行 RLIMIT_CORE。
答案2
如果你的系统配置为将核心发送到 abrt(自动错误报告工具),你可能会在 中找到它/var/cache/abrt
。另请查看/var/crash
。
参考 : 核心已转储,但核心文件不在当前目录中?