阅读:4901回复:2
addr2line工具的使用快速定位lib库错误
有些时候,我们的软件发生了异常,crash提示了信息如下:
图片:lib_error.png 我们可以使用addr2line工具来分析错误。 addr2line工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具,一般我们的编译Linux服务器/usr/bin/下面默认就带了这个工具的。如果没有可以从网上下载编译服务器中。 例如本例子中报错信息如下: 11-26 10:23:47.072 25167 25167 F DEBUG : backtrace: 这里说明一下,addr2line工具只能对有符号表的so进行分析定位,我们编译安卓实际使用的是/system/lib目录下的so库都是不带符号表的,这样可以省点image的空间大小。所以我们分析的时候需要进入到安卓编译生成目录,out/target/product/p212/symbols/system/lib/目录下,该目录下的so库都是带符号表的,然后使用下面的命令可以定位:(注意这命令是在编译服务器上面输入的命令,不是在板子上面输入的) # addr2line -e libstagefright.so 000f2b0f 这样就可以定位到具体的行数,去修改错误了,是不是很方便? |
|
最新喜欢:zhaoyf...
|