核心转储

2023/08/14 C++ GDB 共 542 字,约 2 分钟

core-dump

核心转储文件(core dump file)是在程序发生严重错误导致进程崩溃时产生的一种内存转储文件,可以用于排查问题。在Linux系统中,默认情况下不会生成core dump文件。需要手动设置开启,可以通过以下两种方式:

核心转储配置

1、通过 ulimit 命令设置core dump大小和数量限制:ulimit -c unlimited

2、在程序运行前设置 /proc/sys/kernel/core_pattern 文件来指定core dump文件路径和名称格式。注意,core_pattern文件是一个内存印象文件,无法使用vi编辑,报错core_pattern” E667: Fsync failed,可以直接重定向写入

sudo echo './%e.core.%p' > /proc/sys/kernel/core_pattern

利用核心文件排错

可以使用 gdb 工具分析这个文件,找出引起问题的代码位置和相关信息。命令如下:

gdb <binary> <core-dump-file>

其中 binary 是指编译后的可执行二进制文件,core-dump-file 是指生成的 core dump 文件。 接着使用 bt 命令可以打印出 backtrace 信息,显示了当前线程调用函数的栈帧。

文档信息

Search

    Table of Contents