在Linux系统中,"core" 或 core dump 是一个重要的概念,主要用于程序崩溃时的调试和分析。以下是详细解释:
core
或 core.<PID>
的文件。gdb
)分析 core 文件,可以定位程序崩溃的具体位置(如哪一行代码导致崩溃)。步骤1:启用 Core Dump
bash
ulimit -c
如果输出为 0
,表示禁止生成。需通过以下命令解除限制:
bash
ulimit -c unlimited # 临时生效(仅当前会话)
ulimit -c unlimited
添加到 ~/.bashrc
或 /etc/security/limits.conf
。步骤2:设置 Core 文件路径
/proc/sys/kernel/core_pattern
文件,自定义 core 文件的名称和存储路径:
bash
echo "/tmp/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
其中:
%e
:程序名称%p
:进程ID%t
:崩溃时间戳使用 gdb
加载可执行文件和 core 文件:
bash
gdb /path/to/executable /path/to/core
- 常用命令:
- bt
(backtrace):查看崩溃时的调用栈。
- info registers
:查看寄存器状态。
- print <variable>
:检查变量值。
ulimit -c
设置为 0
。core_pattern
配置错误。cron
任务或工具(如 logrotate
)定期清理。Linux 中的 core dump 是程序崩溃时的诊断工具,通过合理配置和分析,可以快速定位问题根源。如需进一步调试,建议结合 gdb
和代码日志进行深入分析。