android crash log 分析[精确地址查询]

这篇博客介绍了如何分析Android应用的crash日志,特别是通过使用NDK提供的工具`ndk-stack`来精确查询崩溃地址。在一次具体的crash log案例中,通过`ndk-stack`从大量日志中抽取出关键的调用栈信息,从而快速定位问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">我们可以利用ndk提供的工具, 对crash log进行分析</span>

比如, 我们有一次的crash log如下

</pre><pre name="code" class="csharp">04-06 17:05:49.458 I/DEBUG   ( 2408): backtrace:
04-06 17:05:49.458 I/DEBUG   ( 2408):     #00  pc 002aba18  /data/app-lib/com.netjoy.iblis-1/libmono.so
04-06 17:05:49.458 I/DEBUG   ( 2408):     #01  pc 002abb54  /data/app-lib/com.netjoy.iblis-1/libmono.so
04-06 17:05:49.458 I/DEBUG   ( 2408):     #02  pc 002abbf0  /data/app-lib/com.netjoy.iblis-1/libmono.so
04-06 17:05:49.458 I/DEBUG   ( 2408):     #03  pc 0022b374  /data/app-lib/com.netjoy.iblis-1/libmono.so (mono_custom_attrs_from_class+320)
04-06 17:05:49.458 I/DEBUG   ( 2408):     #04  pc 0022bba0  /data/app-lib/com.netjoy.iblis-1/libmono.so (mono_reflection_get_custom_attrs_info+92)
04-06 17:05:49.458 I/DEBUG   ( 2408):     #05  pc 00192678  /data/app-lib/com.netjoy.iblis-1/libmono.so
04-06 17:05:49.458 I/DEBUG   ( 2408):     #06  pc 00008754  <unknown>


我们利用ndk提供的工具进行分析

cd android/android-ndk/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin
./ arm-linux-androideabi-addr2line -C -f -e UnityPlayerNativeActivity/lib/armeabi-v7a/libmono.so 0x00192678

结果发现

mono_gc_is_finalizer_thread
??:?


我们同样可以使用快速崩溃信息抽取

./ndk-stack -sym NJ_Android/obj/ -dump  24371.log

这样会从数万条log中快速打印出call stack的崩溃堆栈信息.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值