1. ホーム
  2. iphone

[解決済み] mallocの "double free "エラーの原因を探るには?

2023-08-27 06:15:13

質問

Objective-Cでアプリケーションをプログラミングしているのですが、このエラーが発生します。

MyApp(2121,0xb0185000) malloc: オブジェクト 0x1068310 に対する *** エラー: ダブル フリー

*** デバッグするためにmalloc_error_breakにブレークポイントを設定します。

NSAutoreleasePoolを解放するときに起こっているのですが、どのオブジェクトを2回解放しているのかがわかりません。

どのように彼のブレークポイントを設定するのですか?

この "object 0x1068310" が何であるかを知る方法はありますか?

どのように解決するのですか?

デバッガでブレークしたときに、そのオブジェクトが何であるかがわかります。コールスタックを調べれば、どこで解放したかがわかります。それがどのオブジェクトなのかがわかります。

ブレークポイントを設定する最も簡単な方法は。

  1. 実行 -> 表示 -> ブレークポイントに移動する ( ALT - コマンド - B )
  2. リストの一番下までスクロールして、シンボル malloc_error_break