私はこのクラッシュに立ち向かおうとしてきましたが、どこから始めればよいのかわかりません。誰かがXcodeのツールを使用してこの情報を適切にナビゲートして原因を見つける方法を理解するのを手伝ってもらえますか?私はこれらの詳細が何であるかさえ知りません:
2 に答える
xcodeデバッグの良い最初のステップは、多くの場合、例外ブレークポイントを設定することです。これを行うには、左側のサイドバーで[例外]タブを選択し、下部のプラスをクリックして[例外ブレークポイント]を選択します。これは、例外がスローされた時点で実行を一時停止し、追跡を容易にするために役立ちます。
とはいえ、投稿したスクリーンショットに基づくと、オブジェクトが2回リリースされているように見えるため、あまり役に立たない可能性があります。コード全体でログステートメントまたは追加のブレークポイントを使用すると、問題が発生している場所を追跡するのに役立つ場合があります。
スクリーンショットに示されている詳細は、コンパイルされたアセンブリコードであり、呼び出されているものが注釈として付けられています。CFRetainは、オブジェクトを解放するためにcocoaによって内部的に使用されます(つまり、-releaseの実装で)。
Instrumentsツールは、最初の呼び出しポートである必要があります。特に、リークおよび割り当てアナライザーです。
これを使用するにはProfile
、Xcodeの[製品]メニューからオプションを選択します。
NSZombie
オブジェクトの過剰リリースをキャッチするように設計されたオブジェクトを使用して調査することをお勧めします。
もちろん、期待されているCore Foundation/Cocoaオブジェクトではないものへのポインターを単に渡しているだけかもしれません。