内核开发,kernel panic是再常见不过的了,根据异常栈通常即可定位出代码出错的大概位置,但是有些时候我们还是会需要使用反汇编工具来帮助我们定位一些异常,objdump.
该反汇编工具存在于prebuilts/gcc/linux-x86/arm/gcc-linaro-aarch64-linux-gnu/bin/文件夹下,可参考如下使用方法:
1) prebuilts/gcc/linux-x86/arm/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-android-objdump vmlinux > 1.txt可把内核镜像反汇编,可以根据oops打印出的PC搜索在哪里出错了;
该文件夹下还有一个工具可以根据地址指出在哪个文件的哪一行出错,使用方法如下:
2) prebuilts/gcc/linux-x86/arm/gcc-linaro-aarch64-linux-gnu/bin/aarch64-linux-android-addr2line -a 要查询的地址 -e vmlinux

当遇到内核开发中的kernel panic时,可以借助objdump工具进行反汇编分析,通过异常栈定位错误位置。将vmlinux镜像反汇编成文本,并根据oops信息搜索错误。另外,addr2line工具能根据地址指出错误发生的源文件和行号,辅助调试。这两个工具位于prebuilts/gcc/linux-x86/arm/gcc-linaro-aarch64-linux-gnu/bin目录下。
1142

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



