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 信息,显示了当前线程调用函数的栈帧。
文档信息
- 本文作者:Iven Li
- 本文链接:https://lutcraft.github.io/2023/08/14/GDB-%E6%A0%B8%E5%BF%83%E8%BD%AC%E5%82%A8/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)