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 は使用できないコールスタックを返します:
#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 はメモリ チェック機能を提供しますか?