私のコードには(私の意見では)非常に難しい問題があります。コード内のさまざまな場所でランダムにクラッシュします。プロジェクトはARCプロジェクトです。
したがって、私のプログラムは次のメッセージでときどきクラッシュします。
malloc: *** error for object 0xd2dd8b0: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
すでにブレークポイントを設定しましmalloc_error_break
たが、そこから情報を取得できません。コードがクラッシュすると、XCodeはコード内で発生した場所を示します。しかし、すでに述べたように、クラッシュはランダムであり、常に発生するとは限りません。しかし、クラッシュはコードの特定の行に集中しているように見えます。
ここで、xcodeに付属している機器を使用してデバッグしたいと思いました。少しグーグルした後、stackoverflowで次のものを見つけました:Xcode 4でNSZombieEnabledを設定するにはどうすればよいですか?およびXcodemallocエラー。
したがって、最初のリンクは、xcodeの実行ボタンをクリックして[プロファイル]を選択することにより、xcode自体からゾンビ検出を開始する方法を説明しています。私が抱えている問題は、私のバージョンのxcode(4.2)でトレースドキュメントのテンプレートを選択するときに「ゾンビ」が見つからないことです。しかし、xcodeの外部(たとえばファインダーから)でInstrumentsを起動すると、ゾンビを選択できます。
さて、これが私がしたことです:
1)ファインダーからインストゥルメントを起動し、プロファイル「ゾンビ」を選択します。
2)iphoneシミュレーターのxcodeからiphoneアプリを起動します(通常の実行(プロファイルまたはデバッグではない))。
3)Instrumentsの「ChooseTarget」->「Attachtoprocess」->「iPhoneSimulator(57529)」。
4)楽器は何かを取り戻し始めます(私はそれが何をするのか理解できません)。
5)アプリがクラッシュするまでアプリをいじり始めます。
最終的にアプリがクラッシュします。アプリをクラッシュさせた後のインストルメントのスクリーンショットは次のとおりです。
私の質問:
1)ゾンビは私の問題に適していますか、それとも別の分析ツールを使用する必要がありますか?
2)クラッシュ後の出力にある楽器は何を教えてくれますか?