問題タブ [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.
ios - NSZombieとは何ですか?
デバッグ中に設定NSZombieEnabled
するようにという提案を見てきました。true
NSZombieとは何ですか?フレームワークですか?設定?
iphone - ゾンビオブジェクトにメッセージを送信するときにiOSアプリをすぐに停止させるブレークポイント?
iOS アプリにメモリ管理のバグがあります。NSZombieEnabled を設定すると、「割り当て解除されたオブジェクトにメッセージが送信されました」というメッセージがコンソールに正しく表示されます。しかし、アプリがクラッシュする前に、実行はそのメッセージのポイントを過ぎているように見えます。少なくとも、いくつかの方法から抜け出しています。これにより、バグの追跡が難しくなります。
メッセージが割り当て解除されたオブジェクトに送信されたときに実行を停止する方法はありますか?
iphone - 奇妙なメモリの問題
ある時点で、次のようにNSMutableData要素を割り当てます。
後で、私はします:
そして最後に私は電話します:
インスツルメント(ゾンビをサポートする割り当て)によると、2番目のブロックの最初の行NSString * dataAsString=...は[データリリース]を呼び出します
それはどこで起こりますか?
ios - _NSZombie_NSKeyValueUndefinedGetter - これは何ですか?
みなさん、
初めて書いたアプリケーションをロードすると意味のないエラーが発生します。
クラス _NSZombie_NSKeyValueUndefinedGetter は両方で実装されています?? と ??。2つのうちの1つが使用されます。どれが未定義です。
誰かが以前にこの問題を抱えていましたか? NSZombies が有効になっている場合にのみ発生します。
みなさん、よろしくお願いします。
objective-c - 過剰にリリースされたオブジェクトのデバッグ、NSZombieの問題
編集:私はこのクラッシュの原因を見つけました!bbumは、バッファオーバーフローがこれの非常に一般的な原因であると指摘したので、私が持っていた唯一のバッファタイプmallocを調べました。
後で、配列の境界を超えてデータを上書きしていました。境界は、よりもはるかに大きいはずですbaseCells.count
。ありがとうございます!
質問:EXC_BAD_ACCESS
-drain中に
再現可能なものがNSAutoreleasePool
あります。これは、オブジェクトを過剰にリリースしていることを示しているようです。だから私は有効NSZombie
にしますが、プログラムはもうクラッシュしません。また、コンソールにログに記録される情報もありません。NSZombieをオフにすると、クラッシュが再発します。これはどういう意味ですか?NSZombiesはまさにこの種の問題に取り組むために使われたと思いました。NSZombieが役に立たない場合、この過剰にリリースされたオブジェクトを調べる別の方法はありますか?
また、クラッシュはシミュレーターでは再現できません。そのため、NSZombieでInstrumentsを使用できません。
以下は、クラッシュポイントでのバックトレースです。
xcode - XCode Zombies は、CFArray が Live Bytes を増やしていることを示しています
私は以前にゾンビを使用したことがなく、それが何をしているのかよくわからないことを認めなければなりません. ただし、次のことが気になります。
CFArray は、Live Bytes 列と # Living 列を継続的に増やしているようで、関連していると思われるいくつかの malloc も同様です。これは、私のアプリがそこに座ってレンダリング (OpenGL) し、入力を待っているときです。
リーク インストゥルメントを実行してみましたが、この期間中にメモリ リークが発生したり、それ以上の割り当てが発生したりすることはありません。CFArray は言うまでもなく、何も割り当てられません。
では、2 つの手段のうちどちらを信じればよいのでしょうか。それとも、単にゾンビインストゥルメントが実際に何をしているのか理解していないだけですか?
誰かが私に指摘できるゾンビに関する適切なドキュメントがあれば、それは素晴らしいことです. Apple のドキュメントは、それを少し詳しく説明しているようです。
c# - MonotouchでNSZombieEnabledを使用することは可能ですか?
私は環境変数について読んでいますNSZombieEnabled
が、Monotouchランタイムでこれを使用できるかどうか疑問に思いました。そうでない場合は、私がただ見ているだけの適切な代替手段はありますか?
私が尋ねる理由は、アプリに漏れがある可能性があるものを見つけるのに役立つ可能性があるためです-私は限られた成功でInstrumentsを使用しようとしましたが、素晴らしい安定したアプリを確実に入手するために可能な限りのオプションを試したいと思います。
編集
私はそれらが何に使用されているのか誤解しました(結局のところ月曜日の朝です...)-しかし、それが可能かどうか、またはC#の自動GCのおかげで、それらが関連するかどうかを知りたいと思いますか?
iphone - iOS 4.2 OSは、ゾンビ(未割り当てクラス)のviewDidUnloadを呼び出しています
NavigationControllerと積み重ねたUIViewControllerのセットがあります。この山の最後の要素に到達したら、popToRootViewControllerを実行します。このパイルを再度作成しようとすると(そして、はい、ビューでメモリの負荷を使用します)、システムは、navigationcontrollerパイル内の以前のオブジェクトの1つに対してmemoryWarningとviewDidUnloadを呼び出します。私はこれが大丈夫であることを知っています、それがいつメモリ警告を生成するか、またはviewDidUnloadを呼び出すかを制御することはできません。問題は、何らかの理由で「self」がすでに割り当てられていないため(NSZombie)、プロパティをnilに設定してメモリを解放できないことです。そうすると、割り当て解除されたインスタンスにメッセージが送信されます。
2つのこと:
(a)rootにポップしたときに、ナビゲーションコントローラーからすべてのサブビューを強制的に解放して、より「メモリフレンドリー」にする方法はありますか?
(b)割り当てられていないクラスのviewDidUnloadを呼び出すのはなぜですか?
これが私が得るスタックトレースです:
どんな助け/提案も本当にありがたいです!
ありがとう、
フェルナンド
xcode - objectAtIndex - 割り当て解除されたインスタンスに送信されたメッセージ
問題が検索コントローラーのどこにあるかを見つけるのに本当に問題があります。これは、検索バーと検索表示コントローラーを備えたテーブル ビューです。以前は問題なく動作していましたが、突然動作しなくなりました。NSZombieEnabled をオンにすると、searchDataSource と呼ばれる NSArray がゾンビであることがわかります。
検索語を入力すると、「shouldReloadTableForSearchTerm」が handleSearchForTerm 関数を実行します。handleSearchForTerm" 関数は、SQLite データベースにクエリを実行してクエリ結果を返す ProductInfo クラスにアクセスします。これらの結果は searchDataSource 配列に配置されます。そこではすべて正常に動作しているように見えます。ただし、"cellForRowAtIndexPath" 関数に到達すると、 searchDataSource からセルをロードします。つまり、配列の割り当てが解除されているという問題に遭遇したときです。
検索コントローラーのコードは次のとおりです。
SearchViewController.m
私はobjective-Cにまったく慣れていないので、何が間違っていたのか理解できません。私はこれを理解しようと何日も費やしましたが、運がありませんでした。誰でも提供できる助けをいただければ幸いです。
キース
xcode - xcode3.2.5パフォーマンスツールで実行->ゾンビオプションを無効にする
私はiOS向けに開発してきましたが、Instrumentsは初めてです。インストゥルメントを使用するためのチュートリアルをいくつか行っていましたが、それらのほとんどは、XCode(3.2.5)にはないパフォーマンスツールで実行->オブジェクトの割り当てを使用しています。「割り当て」(XCodeに存在します)を選択した場合、ゾンビを選択するオプションはありません(オブジェクトの割り当てで予想されるように)。また、パフォーマンスツールで実行->ゾンビが無効になっています。XCodeがゾンビオプションを無効にするのはなぜですか?