1.1 如何查看callstack
-
需要找到带debugsymbol的so
-
有minidump或者callstack
-
使用minidump_stackwalk可以解析minidump文件并生成callstack文本文件
-
使用addr2line可以输入一个so文件和一个地址从而解析得到symbol信息
-
如果没有minidump,我们自己调试得到了stack,那么我们可以这样写个脚本来解析stack:
比如我们的stack信息:
#00 pc 0001c5d0 /system/lib/libc.so
#01 pc 0000e6a8 /system/lib/libc.so
#02 pc 0000e708 /system/lib/libc.so
#03 pc 00e05fd5 /data/app-lib/com.dolphin.browser.engine-1/libdolphinwebcore.so
#04 pc 00e0600d /data/app-lib/com.dolphin.browser.engine-1/libdolphinwebcore.so
每一行有4项,那么我们可以写脚本这样解析:
SYMBOL_SO=libdolphinwebcore.so
cat $1 | while read depth file pc so
do
echo $depth `addr2line -f -C -e${SYMBOL_SO} -a $pc`
done