安卓APP开发人员使用C或C++开发部分程序逻辑时容易出现进程直接崩溃,因此要求我们能分析C/C++崩溃日志和定位问题。本文介绍如何分析Native崩溃日志来确定C/C++代码出错的位置和原因。
-
Native代码示例及崩溃日志
这是一段可以引起崩溃的C代码,当调用crashStack(4)时,可以触发Native层的崩溃,一般情况下崩溃日志的格式如下:
其中backtrace下面的日志就是崩溃时函数堆栈调用信息,取第一行分析:
#00 pc 00001ae8 /data/app/com.open.tec-2/lib/arm/libzoom_test.so (crashStack+51)
#00 |
堆栈序号 |
pc 00001ae8 |
崩溃发生时,程序计数器位于libzoom_test.so的偏移量为00001ae8 |
crashStack+51 |