addr2line 使用,定位kernel panic 代码位置

在kernel崩溃时,方便定位代码。

需要打开kernel配置CONFIG_DEBUG_INFO。

需要有System.map和vmlinux文件,一般在out目录。

一般panic的时候会有给出panic的指针,如下down_write。

el1_data说明发生异常了,进入和entry.S文件,一般el1_data下面的那个函数就是panic的函数。

pc : down_write+0x18/0x50 ,解释如下:

函数down_write汇编代码偏移0x18位置,函数总长度0x50。

addr2line 使用,定位kernel panic 代码位置_第1张图片

操作:

1)根据System.map找到函数基地址,示例中,down_write基地址ffffff8009076d28。
2)需要查询的地址为基地址+偏移地址。示例中崩溃代码虚拟地址为0xffffff8009076d28 + 0x18 = 0xffffff8009076d40
3)使用交叉编译工具链的addr2line工具,和vmlinux文件具体命令如下

addr2line -C -f -e vmlinux 0xffffff8008a08a04

ag down_write System.map

addr2line 使用,定位kernel panic 代码位置_第2张图片

使用3中命令会输出行号

System.map文件内容如下:

addr2line 使用,定位kernel panic 代码位置_第3张图片

addr2line 使用,定位kernel panic 代码位置_第4张图片

你可能感兴趣的:(linux,kernel,panic)