我的Android原生应用程序随机崩溃但经常崩溃,我无法从ndk-gdb中获取足够的信息。这是崩溃后的消息:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 19983]
0x4012c6ac in memcpy () from /Users/Andreas/dev/android/obj/local/armeabi-v7a/libc.so
bt返回一个无法使用的callstack:
#0 0x4012c6ac in memcpy () from /Users/Andreas/dev/android/obj/local/armeabi-v7a/libc.so
#1 0x67337388 in ?? ()
Cannot access memory at address 0x7
#2 0x67337388 in ?? ()
Cannot access memory at address 0x7
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
我正在使用NDK-r8e
我已经检查了我的程序中memcpy()
的所有用法,他们对此不负责任(通过让他们调用另一个具有不同名称的类似memcpy的函数进行验证,并且仍然会在上面发生严重崩溃签名)。
任何想法如何获得更有用的调用堆栈,或进一步调试这个?如果这是内存覆盖,NDK是否提供任何内存检查功能?