下面由工作中的一个例子来捋一下
下图为logcat日志中的打印信息,因此处为bootanimation的打印,所以首先要进入到源码的symbols的该目录下。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90TQNNTUU5kMrpXT4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxUTO4AjNycTM4ATMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在android源码根目录下cd到out/target/product/p201_iptv/symbols/system/bin目录,
接下来使用addr2line工具(了解详情)来将日志中的指令地址转换为相应的代码类与行。上图日志中/system/bin/bootanimation前的0000xxxx则为地址,接下来将此地址转为对应类
在调用 Addr2line 工具时,要使用
-e
选项来指定可执行映像是
test,
通过使用
-f
选项,可以告诉工具输出函数名。
例如: addr2line -e bootanimation 00007b25
使用上述命令即可获取到对应类与行数。