gdb+coredump 调试crash的程序

本文介绍了如何开启core dump,设置core文件路径,以及利用gdb进行崩溃分析。主要内容包括通过`ulimit`命令和修改`/etc/profile`来开启core dump,设置`core_pattern`来指定core文件路径,以及如何使用gdb读取core dump文件进行调试,包括`bt`命令获取堆栈信息。此外,还提到了在线调试和分析Native Crash的方法。
摘要由CSDN通过智能技术生成

1. 打开 core dump

查看是否打开

1
ulimit -c
 如果输出0, 说明没有打开。

方法一:使用命令

1
ulimit -c unlimited
 可以打开,但是只对当前终端有效,

方法二: 配置 /etc/profile 文件

1
sudo gedit /etc/profile
 在最后添加一行

1
ulimit -S -c unlimited > /dev/null 2>&1
 可以始终打开core dump , unlimited 可以改为具体的数字,比方说 1024 来限制 core 文件的大小。

然后在 bashrc 文件里面 source /etc/profile 就可以使每个终端运行的程序 启动 core dump 了.

2. 设置core文件的路径和名字

生成的core file在哪里? 
core file生成的地方是在/proc/sys/kernel/core_pattern文件定义的。 
改动到生成到自己定义的目录的方法是: 

echo "pattern" > /proc/sys/kernel/core_pattern 

并且只有超级用户可以修改这两个文件。 
"pattern"类似我们C语言打印字符串的格式,相关标识如下: 
%%: 相当于% 
%p: 相当于 
%u: 相当于 
%g: 相当于 
%s: 相当于导致dump的信号的数字 
%t: 相当于dump的时间 
%h: 相当于hostname 
%e: 相当于执行文件的名称 
这时用如下命令设置生成的core file到系统/tmp目录下,并记录pid以及执行文件名 
echo 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值