問題タブ [nszombie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
9714 参照

iphone - 割り当て解除されたオブジェクトにrespondsToSelector送信

NSXMLパーサーに間違ったURLを送信すると、アプリがクラッシュする理由(RSSリーダー)を調べようとします。私はEXC_BAD_ACCESSを手に入れました。それで、いくつかの検索の後で、私はゾンビを使わなければならないことに気づきました。そこで、次の引数を環境に追加しました。

malloc_error_breakブレークポイントとしても追加しました。次に、GUIに他のブレークポイントをいくつか追加し、[ビルドとデバッグ]を押しました。コンソールに次のメッセージが表示されます。

2010-08-28 18:41:49.761 RssReader[2850:207] *** -[XMLParser respondsToSelector:]: message sent to deallocated instance 0x59708e0

次のメッセージが表示されることもあります。 wait_fences: failed to receive reply: 10004003

「shellmalloc_history28500x59708e0」と入力すると、次のようになります。

これは何を意味するのでしょうか?0x59708e0がどのオブジェクトであるかを知るにはどうすればよいですか?アプリがクラッシュする原因となるコードが見つかりません。私が知っている唯一のことは、それがrespondsToSelectorメッセージでなければならないということです。すべてのrespondsToSelectorメッセージにブレークポイントを追加しました。それらはヒットしますが、アプリはその時点ではクラッシュしません。また、1つを除いてコメントアウトしようとしたところ、アプリがクラッシュしました。コメントアウトされていないものはヒットしませんでした。メモリリークはどこにありますか?

次の紛らわしいことは、parseErrorOccurredデリゲートが呼び出されても、NSXMLパーサーがその作業を継続することです。エラーが2回スローされた後、アプリがクラッシュします。

Run with Peformance Toolでゾンビが無効になっているのはなぜですか?

編集:

今、私はこの指示を使用しました(投稿できません。申し訳ありません。スパム防止)これは機能しました。これはどういう意味ですか?

@Graham:パーサークラスでインスタンス化しますNSXMLParser

エラーを検索しているときに、リリース方法をコメントアウトしました。現在、rssParserがパーサークラスでリリースされることはありません。

私のRootViewControllerクラスでは、パーサーをインスタンス化します。

ここでリリースしなくてもクラッシュしません。しかし、割り当てごとにリリースを行う必要がありますか?または、自動リリースNSXMLParserする必要がありconnectionDidFinishLoadingますか?

0 投票する
2 に答える
130 参照

iphone - Forループでメッセージを送信されたゾンビ

keys50個の文字列を含むNSMutableArrayであるivarがあります。ビューが読み込まれると、Instrumentsでゾンビメッセージエラーが発生し、次のコード行に移動します。

がクラッシュを引き起こさないように、値を保持して存続させてremoveいますが、それでもクラッシュは発生します。保持せず、自動解放しようとしましたが、それでもクラッシュします。この保持と自動解放の方法は、ローカル変数はあるがivarがない場合に機能します...

他の場所で文字列にアクセスする必要があるため、ivarが必要です。

ありがとう

0 投票する
2 に答える
1314 参照

iphone - iPhoneアプリケーションのデバッグ中にZombieを使用するには?

iPhoneアプリケーションのデバッグ中にZombieを使用するには?

0 投票する
2 に答える
75 参照

iphone - iPhoneのメモリ管理の奇妙な問題

これは私がxcodeで書いたコードです

私が正しければ、それまでに myFoo の割り当てが解除されるため、printmessage 関数が呼び出されたときに実行時エラーが発生するはずです。しかし、 xcode では、コードは機能しており、印刷メッセージが呼び出されています.xcodeの設定が原因で問題ですか?

よろしくアビジット

0 投票する
1 に答える
217 参照

objective-c - [array count] からメッセージを受け取ったゾンビ

次のようにviewDidLoadで設定するivar可変配列があります:

次に、後の方法で、ボタンをタップして次のことを行いますが、アレイが過剰に解放されているように見えます...ゾンビのメッセージが表示されます:

これを修正するにはどうすればよいですか?

ありがとう。

0 投票する
1 に答える
1763 参照

objective-c - arrayWithContentsOfFile: クラッシュする

アプリケーションを作成していますが、EXC_BAD_ACCESS エラーが発生します。


コード

と:


DNPROJECTSFILE の内容

http://gist.github.com/618628を参照してください。


コンソールと計器

これは、実行時にコンソールに表示される内容です (NSZombie が有効になっている場合)。

インスツルメンツが NSZombie テストで言っていることは次のとおりです。

ゾンビメッセージ

Objective-C メッセージが、アドレス 0x10012af80 の割り当て解除されたオブジェクト (ゾンビ) に送信されました。

 

スタックトレース


質問

このダブルリリースを修正する方法が本当にわかりません。私が知る限り、projects以外の場所では変数を解放しませんdealloc。誰か助けてくれませんか?ありがとう。

0 投票する
3 に答える
427 参照

objective-c - NSZombieEnabledはオフになりません

引数にNSZombieEnabledをNOに設定しています。

有効になっているかどうかを確認しています。

私のデバッガーはそれがまだ有効になっていると言います。なんで?

0 投票する
2 に答える
2108 参照

iphone - ゾンビをXCodeで動作させることができません

私は私の最初の本当に難しいEXC_BAD_ACCESS問題を解決しようとしています。多くのチュートリアルやブログから、ゾンビを使用してどこが間違っているのかを理解するのに役立てることができます。しかし、ゾンビが機能しているとは思わないので、コンソールから何も役に立たないことは間違いありません。

プログラムを開始すると、次のように表示されます。This GDB was configured as "x86_64-apple-darwin".Setting environment variable "NSZombieEnabled" to null value.

最終的に、使用したNSLogトレースがいくつか表示されます。

まったく助けにはならない。何か案は?ゾンビが働いていても、どこで悪いアクセスが起こったのかを教えてくれないのではないかとこっそり疑っています。ObjectiveCは私を悲しませます--ActionScriptでは3秒かかります:(


あなたはクラッシュがここにあると言います(次回質問を編集してください):

0 投票する
2 に答える
3058 参照

ios - オブジェクト 0xb50dd20 のエラー: ダブル フリー

誰でも問題に精通しています。この投稿を読みましたが、コードのどこでエラーが発生したのかわからない場合、コードを提供するのは難しいです。アイデアはありますか?

Name(9369,0xa09cd500) malloc: * オブジェクト 0xb50dd20 のエラー: double free *デバッグするために malloc_error_break にブレークポイントを設定します

0 投票する
2 に答える
17549 参照

iphone - [[SKPaymentQueue defaultQueue] addPayment:payment]でのアプリ購入のクラッシュ

私のアプリ内購入は機能します。「購入」UIButtonを備えたModalViewを提示します。ボタンをクリックすると、アプリ内購入がプロセスを通過します。連続して数回行うこともできます。

この問題は、モーダルビューを開き、(UITabBarButtonItemを使用して)モーダルビューを閉じてから、モーダルビューを再度開いて、[購入]ボタンをタップすると発生します。アプリがクラッシュし、次のようなNSZombieが表示されます

***-[InAppPurchaseManager replysToSelector:]:割り当て解除されたインスタンス0x1c7ad0に送信されたメッセージ

NSZombieは、.mファイルの行160を指します。コメントでマークしました。

このページから元のコードを取得しました:http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

私はこれに何日も苦労してきました...どんな助けも素晴らしいでしょう。

これが.hです

これが.mです