ndk -堆栈跟踪工具在Windows上不起作用



我在Windows上执行NDK堆栈跟踪工具时有问题。可能只是一个相当愚蠢的错误,所以这是我尝试的:

...android-ndk-r8dndk-stack.exe -sym ".../JNITest/obj/local/x86/" -dump ".../crash.txt"

我得到的消息如下:

********** Crash dump: **********
...
Stack frame #00  eip: 30303030: Unable to open symbol file .../JNITest/obj/local/x86//☺. Error (123): Unknown error

所以有一个。So文件在这个文件夹中,应该包含符号(BTW:我怎么能检查如果是这种情况?)

当您使用ndk-build构建本机库时,它会创建一个包含所有调试信息的.so文件,通常在目录<proj>/obj/local/armeabi中,然后通过剥离调试符号将该文件安装到<proj>/lib/armeabi中。后者被装入APK中。

上面的

armeabi是最常用的,因为大多数Android设备都使用ARM CPU。你的帖子是指x86子目录。你真的在这个项目中使用了英特尔驱动的设备吗?您是否为x86构建了本机库?如果您这样做了,您能在<proj>objlocalx86目录中找到这个文件吗?

在Windows 7上使用Android NDK Release 9, 64位时,我有同样的NDK -stack.exe崩溃。更新到更新的NDK版本,Release 9c, 64位,问题就解决了。显然是早期版本的NDK中的一个错误。

格雷格

最新更新