Android 如何从墓碑中找到apk中基于偏移量的问题库
我在android应用程序中的一个库中遇到问题。应用程序已崩溃,墓碑被写入。现在,应用程序使用了一批C++库和一些第三方LIBS。 我遇到的问题是,在墓碑中,我看到了这样的东西:Android 如何从墓碑中找到apk中基于偏移量的问题库,android,android-ndk,addr2line,Android,Android Ndk,Addr2line,我在android应用程序中的一个库中遇到问题。应用程序已崩溃,墓碑被写入。现在,应用程序使用了一批C++库和一些第三方LIBS。 我遇到的问题是,在墓碑中,我看到了这样的东西: #00 pc 00042888 /system/lib/libc.so (tgkill+12) #01 pc 00040489 /system/lib/libc.so (pthread_kill+32) #02 pc 0001cb0f /system/lib/libc.so (raise+10) #03 pc 0
#00 pc 00042888 /system/lib/libc.so (tgkill+12)
#01 pc 00040489 /system/lib/libc.so (pthread_kill+32)
#02 pc 0001cb0f /system/lib/libc.so (raise+10)
#03 pc 00019cb1 /system/lib/libc.so (__libc_android_abort+34)
#04 pc 00017a64 /system/lib/libc.so (abort+4)
#05 pc 0001b723 /system/lib/libc.so (__libc_fatal+16)
#06 pc 00055e63 /system/lib/libc.so (ifree+202)
#07 pc 00058d43 /system/lib/libc.so (je_free+374)
#08 pc 0004c784 /system/priv-app/my-app/my-app.apk (offset 0x1b79000)
现在,我已经设法获得了这个apk并将其提取出来,通过日志中的这一行,我大致怀疑是哪个lib导致了这个问题:
F libc : Fatal signal 6 (SIGABRT), code -6 in tid 14556 (httpd)
我在日志中搜索了这个tid,从一些库中找到了一堆日志,它们都是相同的tid。
然后我使用addr2line并在这个库中找到了一些方法,但我不能100%确定这是有效的方法。
我想知道有没有办法把这个地址和墓碑的偏移量连接起来
(offset 0x1b79000)
到特定库?
在这种情况下,什么是最佳实践?谢谢请参见:我不能100%确定第#08行的偏移量指的是什么,但我假设它是特定未压缩库的偏移量。否则,它将指向提取的.so文件,而不是.apk文件。我认为偏移量不能帮助您找到崩溃的特定函数。这些信息可能在垃圾堆/墓碑上的某个地方,但可能没有打印在该摘要中。