0

大量のコードがあり、次のエラー/例外がスローされます。

malloc: *** error for object 0xce52964: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug

NSZombies などのすべてのメモリ管理機能を有効にして実行すると、完全に正常に機能します。

Symbolic Exception Breakpointタイプのを追加するmalloc_error_breakと、ランダムな行で停止します (NSLog(@"part6");コードを を介してセクションに分割することで、コードのデバッグを支援するために使用しますNSLog)。

また、デバッガーに入力しようとしましたが、これが得られます。

po 0xce52964
(int) $3 = 216344932 [no Objective-C description available]

これをさらにデバッグする方法を知っている人はいますか? 私のコードの何がこの問題を引き起こしているのかわかりません。

4

1 に答える 1

1

malloc スタック ロギングを有効にします (これは Xcode で実行できます - ゾンビの下のいくつかのチェックボックス)。

次に、プログラムを実行/テストします - 問題を再現します。ここで、malloc_historyutil を使用して、malloc がメッセージでフラグを立てた割り当てに関する詳細情報を取得します。

于 2012-08-15T16:56:25.563 に答える