開発中の iOS アプリを実行しようとすると、次のエラーが発生します。
appname(6097,0x3e835d98) malloc: *** error for object 0x20104600: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
free()
このエラーを生成した呼び出しを確認するにはどうすればよいですか? にブレークポイントを追加するとmalloc_error_break
、取得するスタック トレース全体が " malloc_error_break
" への呼び出しになり、次のようになります。
libsystem_c.dylib`malloc_error_break:
0x32f20fa8: push {r7, lr} < Thread 1: breakpoint 1.1
0x32f20faa: mov r7, sp
0x32f20fac: nop
0x32f20fae: nop
0x32f20fb0: pop {r7, pc}
0x32f20fb2: nop
にブレークポイントを追加しないとmalloc_error_break
、同様に役に立たないスタック トレースが得られますが、今回は__pthread_kill
と アセンブラ命令だけです。
このエラーを生成したコードについてより良いアイデアを得るために他にできることはありますか?