coredump gdb 调试_CRASH安装和调试

一、Crash?

当linux系统内核发生崩溃的时候,可以通过KEXEC+KDUMP等方式收集内核崩溃之前的内存,生成一个转储elf文件vmcore或者其他dump形式。内核开发者通过分析该elf dump文件就可以诊断出内核崩溃的原因,从而进行操作系统的代码问题修复。那么Crash就是一个被广泛使用内核崩溃转储文件分析工具。

对调试来讲,gdb/trace32是非常适合的,但gdb始终是调试native的工具,不支持kernel信息显示,比如task信息之类的。crash补足了这个短板,由Dave Anderson开发和维护的一个内存转储分析工具,是基于GDB开发的,GDB适用于用户进程的coredump,而Crash扩展了GDB,使其适用于linux kernel coredump,目前它的最新版本是7.3。在没有统一标准的内存转储文件的格式的情况下,Crash工具支持众多的内存转储文件格式,包括:

  • Live linux系统
  • kdump产生的正常的和压缩的内存转储文件
  • 由makedumpfile命令生成的压缩的内存转储文件
  • 由Netdump生成的内存转储文件
  • 由Diskdump生成的内存转储文件
  • 由Kdump生成的Xen的内存转储文件
  • IBM的390/390x的内存转储文件
  • LKCD生成的内存转储文件
  • Mcore生成的内存转储文件

二、安装

crash是redhat开源工具,因此需要自己下载代码编译成linux可执行文件。

1)从官方网站下载crash源代码;

git clone git://github.com/crash-utility/crash.git

2)编译前确保必要的组件(ncurese和zlib);

sudo apt-get install libncurses5-dev

sudo apt-get install zlib1g-dev

3)解压后编译ARM 32bit的crash:

cd crash-7.2.8

make target=ARM64

4)如果是ARM 64bit的,则是:

cd crash-7.2.8

make target=ARM64

5)编译后会在当前目录下生成crash,可以将多余的符号去除:

strip -s crash

6)当发生kernel crash时,会有db生成;

7)然后可以使用crash的各种命令了,详情请看:http://people.redhat.com/anderson/crash_whitepaper/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值