关于Linux的core dump那些事

2021-08-29  本文已影响0人  拉普拉斯妖kk

什么是core?

在linux中,程序运行时出现异常崩溃,操作系统会将程序当时的内存状态、调用堆栈等信息保存在core文件中。这种行为就是core dump(核心转储)。core文件中一般会保存寄存器信息(包括程序指针、栈指针等)、内存管理信息、CPU和操作系统状态和以及函数调用堆栈等信息。所以,core文件对于开发人员是非常重要的,很多时候我们都需要依赖对core文件的分析结合日志来定位和解决崩溃的问题。

core dump相关设置

在linux中,core dump的一些相关设置方法:

%e dump的命令名
%p dump的进程PID
%t dump时间戳(由1970年1月1日起计的秒数)
%s 导致本次core dump的信号
%c 转储文件的大小上限
%g dump的进程的实际组ID
%u dump进程的实际用户ID
%h 主机名

产生core文件的必备条件

GDB调试core文件

当程序core dump之后,使用命令gdb program core来查看 core 文件,其中 program 为可执行程序名,core 为生成的 core 文件名。然后执行bt(backtrace)命令查看函数的调用堆栈,定位崩溃产生的位置。其他gdb调试技巧在此不赘述。

core文件的缺点

上一篇下一篇

猜你喜欢

热点阅读