回答:
環境変数は「スキーム」の一部になりました。
スキームを編集してゾンビをオンにするには:
「製品」メニューから「スキームの編集」を選択します。
左側のパネルの「Run Foo.app」ステージに移動し、右側の「Arguments」タブに移動します。
Xcode 3の場合と同様NSZombieEnabled
に、「環境変数」セクションに追加して、値をYES
に設定します。
Xcode 4.1以降では、「実行」ステージの「診断」タブに「ゾンビオブジェクトを有効にする」ためのチェックボックスもあります。
Xcode 6.4の場合:
EXC_BAD_ACCESSのトラブルシューティングで同じ問題が発生し、Xcode 4.2(iOS5 SDKに付属する最新の設定)で設定を見つけるのに苦労しました。Appleは物事を動かし続け、設定はかつてあった場所ではなくなりました。
幸い、私はそれを見つけました。それはシミュレータだけでなく、デバイスでも機能します。Xcodeで[Product]メニューを開き、[Edit scheme]を選択して、[Diagnostics]タブを選択する必要があります。そこに「ゾンビオブジェクトを有効にする」があります。選択してデバッガーで実行すると、二重解放オブジェクトが示されます。楽しい!
要するに
Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
Product> ProfileがInstrumentsを起動すると、「Zombies」という名前の「Trace Template」が表示されます。ただし、このトレーステンプレートは、現在のビルドの宛先がシミュレータの場合にのみ使用できます。宛先をiOSデバイスに設定している場合は使用できません。
また、楽器ライブラリには実際のゾンビ楽器は存在しないことにも注意してください。ゾンビトレーステンプレートは、実際には、「NSZombie検出を有効にする」起動構成セットが設定されたAllocations機器で構成されています。
これは、実行可能ファイルに環境変数を設定し、(NSZombieEnabled = YES)
通常どおりアプリを実行/デバッグするだけの簡単なことです。ゾンビにメッセージを送ると、アプリはデバッガーにクラッシュ/ブレークしNSLog
、メッセージが表示されます。
詳細については、このCocoaDevページを確認してください。http://www.cocoadev.com/index.pl? NSZombieEnabled
また、このプロセスは10.6のリリースとXcodeとInstrumentsの次のバージョンで非常に簡単になります。ただ言って'。=)
Product> Profileは、Instrumentsをポップアップします。パネルからゾンビを選択し、ナッツを移動します。
ビデオと、インストルメントとNSZombieを使用してiOSでメモリクラッシュを見つけて修正する方法の説明は次のとおりです。http: //www.markj.net/iphone-memory-debug-nszombie/
Xcode 3.2.5およびSnow Leopard(Mac OS X 10.6)以降、ゾンビインストゥルメントを通じてコードを実行できますRun > Run with Performance Tool > Zombies
。これにより、特定のオブジェクトとその保持数をタイムラインで確認できます。
ゾンビログを有効にするには、Xcodeプロジェクトの実行可能ファイルグループの実行可能ファイルをダブルクリックします。この時点で、[引数]タブをクリックし、Variables to be set in the environment:
セクションで変数を呼び出してNSZombieEnabled
、その値をに設定しますYES
。
実行可能ファイルの設定で環境変数NSZombieEnabled
を追加し、値をに設定しますYES
。
NSZombieEnabledは、BAD_ACCESSのデバッグに使用されます。
XcodeのスキーマシートからNSZombiesEnabled環境変数を有効にします。
Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box
このビデオは、私が何を言おうとしているのかを理解するのに役立ちます。