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
本文介绍了在没有minidump时,如何通过callstack信息来查看调用栈。主要内容包括使用minidump_stackwalk解析minidump文件,使用addr2line获取symbol信息,以及在没有minidump情况下,编写脚本解析stack信息的例子。
7169

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



