linux下coredump文件产生及分析
前言
cordump是程序崩溃时产生的包含一些堆栈,寄存器信息的文件。windows下如何捕获并分析已做说明,在此只做linux下的说明
如何产生coredump文件
通过ulimit -c查看coredump文件大小限制,一般为0,表示不产生coredump文件,我们需要使用ulimit -c unlimited解除限制,但当关了终端后又会恢复为0
如何设置永久生效
以下修改只对当前用户永久生效
vim ~/.bashrc
在文件末尾追加
ulimit -c unlimited
保存文件后使其立刻生效
source ~/.bashrc
修改coredump路径及文件名
coredump默认产生在程序执行目录,但是当在程序中修改执行路径后会导致在可执行文件路径找不到
su root
echo /path/to/coredump.%e.%p > /proc/sys/kernel/core_pattern
%p - 插入当前的pid
%u - 插入当前的uid
%g - 插入当前的gid
%s - 插入导致产生core文件的信号
%t - 插入core文件生成时的时间
%h - 插入主机名
%e - 插入程序名
对coredump文件进行分析
通过一段代码来演示如何分析

文章介绍了在Linux系统中如何生成coredump文件,包括使用`ulimit-cunlimited`解除限制,以及如何设置coredump的存储路径和文件名。此外,还阐述了如何通过`/proc/sys/kernel/core_pattern`配置文件名格式。当程序崩溃时,可以利用gdb对coredump文件进行分析,例如通过`bt`命令查看调用栈。
最低0.47元/天 解锁文章
3766

被折叠的 条评论
为什么被折叠?



