如何在程序崩溃时在ndk-gdb中查看更多信息

时间:2011-08-30 05:58:21

标签: android debugging stack android-ndk

我使用eclipse和ndk-gdb来调试我的AndroidNDK程序,但是我发现一个问题,ndk-gdb工具似乎没有“保存堆栈”的功能,当程序崩溃时,我找不到详细信息来自ndk-gdb,它没有指出哪个函数,哪个类和哪一行,只是给出这样的信息:*程序接收信号SIGSEGV,分段fault.0xafd0cda4在memcpy()    来自D:/android/ndk/samples/mango_d/obj/local/armeabi/libc.so *

所以,我想知道是否有办法在程序崩溃时看到更多信息(程序调用的最后一句话或其他),谢谢你的拳头

1 个答案:

答案 0 :(得分:0)

您可以尝试使用ndk-stack程序,请参阅ndk中的doc,docs / NDK-STACK.html

如果您通过

编译c源代码
ndk-build NDK_DEBUG=1 APP_OPTIM=debug

你应该可以调用类似这样的东西

adb -s %TARGET_INSTALL% logcat DEBUG:I | ndk-stack -sym ./obj/local/armeabi-v7a

将为您提供seg-fault的源代码和行堆栈跟踪。