You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Docker环境下进程触发signo 11产生coredump但dmesg无段错误记录的原因

进程生成core dump但dmesg无段错误记录的可能原因

  • Docker运行时的日志隔离限制
    Docker默认限制容器内进程的内核事件上报到宿主机的dmesg缓冲区:

    • 容器启动时如果配置了--cap-drop syslog权限,或者使用了非内核默认的日志驱动,容器进程产生的内核事件不会写入宿主机的内核环缓冲区
    • 部分容器 runtime(如containerd、cri-o)默认关闭了容器进程致命信号的日志上报能力,避免容器日志污染宿主机dmesg
  • 内核参数配置导致日志不输出

    • 宿主机kernel.core_pattern配置为用户空间core dump处理程序(例如systemd-coredump、abrt或自定义采集脚本)时,段错误事件会直接交给用户空间程序处理,不会打印到dmesg
    • 内核参数kernel.print-fatal-signals值为0时,内核默认不会将用户态进程的致命信号(包括SIGSEGV)事件输出到dmesg
  • dmesg环形缓冲区日志被覆盖
    dmesg使用固定大小的环形缓冲区存储日志,若宿主机运行时间长、内核输出日志量大,较早产生的段错误日志会被新日志覆盖。可以通过查看/var/log/kern.log(Debian/Ubuntu 系)或/var/log/messages(RHEL/CentOS 系)的历史内核日志进一步验证。

  • 进程主动触发SIGSEGV信号
    如果进程是通过raise(SIGSEGV)、kill(pid, SIGSEGV)等调用主动发送11号信号,而非因非法内存访问触发内核态段错误,内核不会生成对应的dmesg日志,仅会传递信号触发进程转储core文件。


内容的提问来源于stack exchange,提问作者music90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 15:12:02