有时候碰到了kernel panic,如果stack在linux kernel里,那就需要有linux kernel的debug symbol,如果你的kernel是release的,那就可以直接下载symbol就可以了。
1. 从ubuntu keyserver获取key
ubuntu 16.04及以后的系统:
$sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C8CAB6595FDFF622
ubuntu 16.04以前的系统:
$sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ECDCAD72428D7C01
2. 创建debug list文件
$ codename=$(lsb_release -c | awk '{print $2}') #获取发行版代号
创建/etc/apt/sources.list.d/ddebs.list文件,添加如下内容:
deb http://ddebs.ubuntu.com/ ${codename} main restricted universe multiverse
deb http://ddebs.ubuntu.com/ ${codename}-security main restricted universe multiverse
deb http://ddebs.ubuntu.com/ ${codename}-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com/ ${codename}-proposed main restricted universe multiverse
3. 更新debug symbol源
$sudo apt-get update
4. 获取linux kernel的debug symbol
$sudo apt-get install linux-image-$(uname -r)-dbgsym
linux kernel的debug symbol 位于 /usr/lib/debug/boot/。如何使用这个debug symbol可以参考这篇文章。

当遇到kernel panic且堆栈在Linux内核中时,需要Linux内核的debug symbol。对于Ubuntu 16.04及更高版本,可以通过从官方keyserver获取key,创建debug list文件并更新源来下载内核的debug symbol。debug symbol存放在/usr/lib/debug/boot/目录下,使用方法可参考Ubuntu官方文档。
356

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



