当Android应用程序崩溃时,我可以获得C++堆栈跟踪吗?

Qwe*_*tie 10 c++ debugging android

我的C++代码中出现的大多数错误导致应用程序只是退出,没有任何LogCat输出,并且设备上没有消息.空指针和错误使用JNI经常产生这个结果,不用说,它使调试变得非常困难.

目前我可以在ndk-gdb中使用'bt'命令获取堆栈跟踪,但是如果崩溃发生在启动的前2秒内则不会,因为ndk-gdb启动进程并在启动后附加到它.另外,ndk-gdb是不可靠的,经常说它找不到任何符号,或抱怨非致命的"SIGILL"错误.

有没有办法在应用程序崩溃时捕获错误并打印堆栈跟踪或其他信息?例如,如果有SIGSEGV,我想知道该应用尝试访问的地址.

xun*_*ien 4

trace.txt文件给一些东西?我不记得他的位置是:/data/anr/trace.txt还是/data/data/{pkg}/trace.txt