iOSで「割り当て解除されたインスタンスに送信されたメッセージ」エラーを解決しようとしています。
3 に答える
LLDB-GDB コマンド マップ ( http://lldb.llvm.org/lldb-gdb.html ) を参照してください。スクリプトをインポートする必要があり、コマンドの名前は malloc_info になりました。もちろん、スキーム オプションで malloc スタック ロギングを有効にする必要があります。
(lldb) script import lldb.macosx.heap
(lldb) malloc_info --stack-history 0x10010d680
残念ながら、dealloc は表示されません。GDB の malloc-history でも表示されませんでしたか?
楽器を使えば、正確なラインが得られるでしょう -
(XCode の場合) "Product" -> "Profile" から実行します。
これにより Instruments が起動します。そこで「ゾンビ」を選択し、バグ イベントを再現する必要があります。
ゾンビが呼び出されるとポップアップが表示されます。シェブロンを押して正確なラインを表示します。
問題は通常悪い__bridge
(オプションのブリッジ__brige_retained
/ __bridge_transfer
/ __bridge
)
以前は、シェルから malloc_history コマンドライン ツールを使用して、対象のプロセス ID とアドレスを指定することができました。このコマンドは、最新の Xcode のコマンド ライン ツールによってインストールされなくなったようです。:-(