在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。
操作:
1)根据System.map找到函数基地址,示例中,down_write基地址ffffff8009076d28。
2)需要查询的地址为基地址+偏移地址。示例中崩溃代码虚拟地址为0xffffff8009076d28 + 0x18 = 0xffffff8009076d40
3)使用交叉编译工具链的addr2line工具,和vmlinux文件具体命令如下
addr2line -C -f -e vmlinux 0xffffff8008a08a04
ag down_write System.map
使用3中命令会输出行号
System.map文件内容如下: