在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 和代码日志进行深入分析。