如何在Android Studio 1.3中使用ndk-stack

时间:2015-08-13 13:20:34

标签: android android-ndk

我的应用程序中一直收到致命信号11错误。我一直试图通过从Android Studio 1.3中的终端窗口调用ndk-stack工具来调试此错误,但无济于事。我已经成功下载并链接了ndk平台。

我的问题是,我必须输入什么命令到终端才能获得可读的输出。我不知道符号文件在哪里,因为某些原因我无法从我的设备中拉出墓碑,所以使用下面输出的解决方案会很棒。

此外,我仅将NDK用于此特定调试目的。我使用java构建了我的应用程序。

08-13 18:27:52.010  25202-25214/? A/libc﹕ Fatal signal 11 (SIGSEGV), code 2, fault addr 0xaec77ac0 in tid 25214 (FinalizerDaemon)
08-13 18:27:52.112      186-186/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-13 18:27:52.112      186-186/? I/DEBUG﹕ Build fingerprint: 'google/hammerhead/hammerhead:5.1/LMY47I/1767468:user/release-keys'
08-13 18:27:52.112      186-186/? I/DEBUG﹕ Revision: '11'
08-13 18:27:52.112      186-186/? I/DEBUG﹕ ABI: 'arm'
08-13 18:27:52.112      186-186/? I/DEBUG﹕ pid: 25202, tid: 25214, name: FinalizerDaemon  >>> com.exampleapp <<<
08-13 18:27:52.112      186-186/? I/DEBUG﹕ signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xaec77ac0
08-13 18:27:52.121      186-186/? I/DEBUG﹕ r0 aec2a640  r1 00000020  r2 7463656a  r3 aec2cc60
08-13 18:27:52.121      186-186/? I/DEBUG﹕ r4 aec2a640  r5 aec77ac0  r6 130a8440  r7 ffffffff
08-13 18:27:52.122      186-186/? I/DEBUG﹕ r8 6fc735b8  r9 b4a37400  sl 1314a850  fp 130a8440
08-13 18:27:52.122      186-186/? I/DEBUG﹕ ip b6e18e2c  sp b3c67a68  lr b6e0c3b1  pc aec77ac0  cpsr 60070010
08-13 18:27:52.122      186-186/? I/DEBUG﹕ backtrace:
08-13 18:27:52.122      186-186/? I/DEBUG﹕ #00 pc 00077ac0  [anon:libc_malloc]
08-13 18:27:52.122      186-186/? I/DEBUG﹕ #01 pc 000223af  /system/lib/libbinder.so (android::Parcel::freeDataNoInit()+22)
08-13 18:27:52.122      186-186/? I/DEBUG﹕ #02 pc 00022409  /system/lib/libbinder.so (android::Parcel::~Parcel()+4)
08-13 18:27:52.122      186-186/? I/DEBUG﹕ #03 pc 000819a3  /system/lib/libandroid_runtime.so
08-13 18:27:52.122      186-186/? I/DEBUG﹕ #04 pc 0001881d  /data/dalvik-cache/arm/system@framework@boot.oat

1 个答案:

答案 0 :(得分:2)

使用命令提示符导航到NDK根目录,创建一个名为log.txt的新文件,粘贴调试日志,然后执行此命令,将示例路径(path \ to \ your \ project \ MyProject \ myprojectname)替换为正确的一个:

ndk-stack.exe -sym C:\path\to\your\project\MyProject\myprojectname\src\main\jniLibs\armeabi -dump log.txt