我使用eclipse和ndk-gdb来调试我的AndroidNDK程序,但是我发现一个问题,ndk-gdb工具似乎没有“保存堆栈”的功能,当程序崩溃时,我找不到详细信息来自ndk-gdb,它没有指出哪个函数,哪个类和哪一行,只是给出这样的信息:*程序接收信号SIGSEGV,分段fault.0xafd0cda4在memcpy() 来自D:/android/ndk/samples/mango_d/obj/local/armeabi/libc.so *
所以,我想知道是否有办法在程序崩溃时看到更多信息(程序调用的最后一句话或其他),谢谢你的拳头
答案 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的源代码和行堆栈跟踪。