Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从墓碑中找到apk中基于偏移量的问题库_Android_Android Ndk_Addr2line - Fatal编程技术网

Android 如何从墓碑中找到apk中基于偏移量的问题库

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

我在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 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文件。我认为偏移量不能帮助您找到崩溃的特定函数。这些信息可能在垃圾堆/墓碑上的某个地方,但可能没有打印在该摘要中。