308

エラー トレースなしでクラッシュするアプリがあります。デバッグすると何が起こっているかの一部を見ることができますが、どのオブジェクトが「ゾンビ化」しているのかわかりません。

Xcode 4 で NSZombie を有効にする方法を知っている人はいますか?

4

15 に答える 15

443

環境変数は「スキーム」の一部になりました。

スキームを編集してゾンビをオンにするには:

  • 「製品」メニューで、「スキームの編集」を選択します。

  • 左側のパネルの[RunFoo.app]ステージに移動し、右側の[Arguments]タブに移動します。

  • Xcode 3の場合と同様NSZombieEnabledに、「環境変数」セクションに追加し、値をに設定します。YES


Xcode 4.1以降では、「実行」ステージの「診断」タブに「ゾンビオブジェクトを有効にする」チェックボックスもあります。


Xcode 6.4の場合:

スクリーンショット

于 2011-03-22T04:57:39.023 に答える
146

EXC_BAD_ACCESS のトラブルシューティングで同じ問題が発生し、Xcode 4.2 (iOS5 SDK に付属する最新のもの) で設定を見つけるのに苦労しました。Apple は物事を動かし続けており、設定はもはや以前の場所ではありません。

幸いなことに、シミュレーターだけでなく、デバイスでも機能することがわかりました。Xcode で [製品] メニューを開き、[スキームの編集] を選択してから、[診断] タブを選択する必要があります。そこに「ゾンビオブジェクトを有効にする」があります。選択してデバッガーで実行すると、二重にリリースされたオブジェクトが表示されます。楽しみ!

要するに

Product->Edit Scheme->Diagnostics-> Click Enable Zombie Objects
于 2011-11-16T12:28:32.823 に答える
43

Product > Profile で Instruments を起動すると、"Zombies" という名前の "Trace Template" が表示されます。ただし、このトレース テンプレートは、現在のビルド先がシミュレーターである場合にのみ使用できます。iOS デバイスに設定されている場合は使用できません。

また、インストゥルメント ライブラリに実際の Zombies インストゥルメントがないことにも注意してください。ゾンビ トレース テンプレートは、実際には、「NSZombie 検出を有効にする」起動構成セットを含む割り当てインストゥルメントで構成されています。

于 2011-05-05T01:19:23.590 に答える
25

実行可能ファイルに環境変数を設定し、(NSZombieEnabled = YES)通常どおりアプリを実行/デバッグするだけです。ゾンビにメッセージを送信すると、アプリがクラッシュ/ブレークしてデバッガーとNSLogメッセージが表示されます。

詳細については、次の CocoaDev ページをご覧ください: http://www.cocoadev.com/index.pl?NSZombieEnabled

また、このプロセスは、10.6 のリリースと Xcode および Instruments の次のバージョンではるかに簡単になります。ただ言って'。=)

于 2009-07-31T15:16:29.540 に答える
22

製品 > プロファイルはインストゥルメントをポップアップ表示します。パネルからゾンビを選択して、夢中になろう。

于 2011-04-04T13:56:23.027 に答える
17

製品に移動- スキーム - スキームの編集 - 引数 - 環境変数set NSZombieEnabled = YES

ここに画像の説明を入力

ここに画像の説明を入力

于 2013-12-11T09:48:19.150 に答える
12

xcode 4.2 で

製品に移動 -> スキームを編集 -> [yourappname.app を実行] -> [診断] -> [Zombie オブジェクトを有効にする] をクリックします。

于 2011-11-08T12:56:54.980 に答える
11

ここでは、Instruments と NSZombie を使用して iOS でメモリ クラッシュを見つけて修正する方法のビデオと説明を示します: http://www.markj.net/iphone-memory-debug-nszombie/

于 2011-01-31T03:19:08.267 に答える
6

Xcode3.2.5およびSnowLeopard(Mac OS X 10.6)以降、Zombiesインスツルメントを介してコードを実行できますRun > Run with Performance Tool > Zombies。これにより、特定のオブジェクトとその保持カウントをタイムラインで確認できます。

于 2010-12-08T23:40:25.160 に答える
4

Xcode 4.5.2 では、Product -> Edit Scheme -> に移動し、[Diagnostics] タブで、Objective C と Enable Zombie Objects の間のチェック ボックスをオンにして、[OK] をクリックします。

于 2012-12-07T14:37:51.043 に答える
3

XCode 4.0の場合:InstrumentsでNSZombieを検出するには、ターゲットとしてシミュレーターを選択します(デバイスでNSZomboeを検出できません)。Instruments(CMD + I)を実行し、「ゾンビ」トレーステンプレートを選択します。楽しみ。

于 2011-10-06T12:22:33.457 に答える
3

ゾンビ ログを有効にするには、Xcode プロジェクトの実行可能ファイル グループにある実行可能ファイルをダブルクリックします。この時点で Arguments タブをクリックし、Variables to be set in the environment:セクションで という変数を作成し、NSZombieEnabledその値を に設定しますYES

于 2011-04-30T10:12:17.093 に答える
2

実行可能ファイルの設定で、環境変数を追加しNSZombieEnabled、値を に設定しますYES

于 2011-04-30T10:11:30.037 に答える
2

ur XCODE (4.3) で、次に再生ボタン :) (実行)

select : スキームを編集

スキーム管理ウィンドウが開きます

[引数] タブをクリックします。

1- 起動時に渡される引数 2- 環境変数

(2- 環境変数) 内 名前: NSZombieEnabled
値: YES

そして、その完成....

于 2012-05-17T09:41:00.620 に答える
1

NSZombieEnabled は、BAD_ACCESS のデバッグに使用されます。

Xcode のスキーム シートから NSZombiesEnabled 環境変数を有効にします。

Click on Product⇒Edit Scheme to open the sheet and set the Enable Zombie Objects check box

このビデオは、私が言おうとしていることを理解するのに役立ちます。

于 2013-10-22T08:21:16.133 に答える