ubuntu kernel panic查看源文件

在驱动开发中,经常会碰到kernel panic的问题,如果快速和高效的定位出问题的位置至关重要。kernel panic出现的位置有两个,一种是在kernel里面,一种是在device driver里面,根据kernel panic的call stack可以看出来,定位源文件的方法也是一样的。

首先要有对应的debug symbol,如果是在linux kernel里,就需要安装对应版本的symbol,方法可以查看这篇文章。如果是device driver,就需要developer自己build debug版的driver出来。

其次,需要安装gdb,没错,我们可以使用gdb,根据call stack来定位出错的位置。以linux kernel自身的kernel panic为例:

$gdb /usr/lib/debug/boot/vmlinux-4.10.0-28-generic
(gdb) list *(some_function+0x12c)

这种方法直接可以看到出错的源文件和行号,如果有source code,可以看到源码。

如果stack在device driver里:

$gdb "$(modinfo -n /home/user/my.ko)"
(gdb) list *(some_function+0x12c)
 

使用gdb的方式非常简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值