問題タブ [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.
iphone - 前方宣言を使用してクラスを呼び出す場合、IBOutletはNILですか?
私はこれに大きな問題を抱えていたので、図を描きました...
代替テキスト http://tomsfil.es/7bdead0a.png
CLASS A - METHOD B に到達しましたが、その時点で IBOutlet Z は Nil ですか? :( 何か案は?
note オーバーリリースの可能性があり、NSZombieEnabled を使用するように誰かが私に言いましたが、それは私を混乱させました
iphone - iPhone アプリのリリース ターゲットでのみ発生する EXC_BAD_ACCESS をデバッグする方法は?
私はiPhoneアプリケーションを開発しています。EXC_BAD_ACCESS
リリース ターゲットでのみ発生する があります。デバッグ ターゲットをビルドすると、例外は発生しません。ただし、NSZombieEnabled
環境変数をに設定してYES
も、EXC_BAD_ACCESS
それ以上の情報はありません。NSZombieEnabled
リリースターゲットを実行するときに動作することさえ可能ですか? どちらの場合もgdbが実行されているため、理由がわかりません...
更新:これはスタックの一番上のプリントアウトです:
上部の objc_msgSend 呼び出し内からの gdb セッションを次に示します。
行で例外が発生します0x33369ebc <objc_msgSend+20>: ldr r5, [r4, #8]
。r4
が指す値が与えられましたがr0
、これはたまたま 0 です0x3100000
。その領域のメモリ ダンプは次のとおりです。
他に何を試すべきか本当にわかりません。うまくいけば、iPhoneの経験が豊富な人がこの記憶を意味のあるものとして認識することができるでしょう.
更新 2: -O2、-O3、および -Os を指定してコンパイルした場合にのみ問題が発生することがわかりました。それが何を意味するのかわかりません。
iphone - EXC_BAD_ACCESS NSUrlConnection
EXC_BAD_ACCESS
関数の最後の行 (webData) を実行すると、が得られました。
私がネット上で読んだことは、ほとんどの場合記憶に関するものだったので、私は何かをリリースしないように努めました.
コードをデバッグすると、次の(NSZombieEnabled = YES)
ようになります。
誰も手がかりを持っていますか?
iphone - NSZombieEnabled は作業コードを壊していますか?
に次のメソッドがありますUIImageManipulation.m
。
私は別のビューでそれを呼び出しています:
(imageView は以前に割り当てられた UIImageView です)
これは私のコードでうまく機能しています。画像のサイズを完全に変更し、エラーをスローしません。また、ビルド - >分析の下に何もポップアップしません。NSZombieEnabled
しかし、別の問題をデバッグするためにオンにするEXC_BAD_ACCESS
と、コードが壊れます。毎回。私はNSZombieEnabled
オフにすることができます、コードはうまく動作します。私はそれをオンにし、ブーム。壊れた。呼び出しをコメントアウトすると、再び機能します。毎回、コンソールにエラーが表示されます: -[UIImage release]: message sent to deallocated instance 0x3b1d600
. `NSZombieEnabled がオフになっている場合、このエラーは表示されません。
何か案は?
- 編集 -
わかりました、これは私を殺しています。私はできる限りどこでもブレークポイントをスタックしましたが、まだこのことを把握できません。scaleImage
メソッドを呼び出すときの完全なコードは次のとおりです。
他のUIImageManipulator
方法 ( makeRoundCornerImage
) がエラーを引き起こしているはずはありませんが、何かを見落としている場合に備えて、ファイル全体を github hereに投げました。
しかし、それはこの方法に関するものです。である必要があります。コメントアウトすると、うまくいきます。入れっぱなしだとエラー。NSZombieEnabled
しかし、これまでオフにしてエラーをスローすることはありません。
iphone - NSZombie なしで EXC_BAD_ACCESS を追跡しますか?
これに 2 日間費やしましたが、まだクラッシュの原因を見つけることができません。
解放されたオブジェクトにアクセスしようとすることに関係があることは知っていますが、どのアクセスまたはどのオブジェクトかはわかりません。
EXC_BAD_ACCESS のソースを見つけようとしてグーグルで検索するたびに、人々は NSZombies の使用を提案します。問題は、(環境変数を介して xcode で、または ObjectAlloc プロパティを介してインストゥルメントで) ゾンビを有効にすると、プログラムは通常クラッシュせず、ゾンビは何も報告しません (ログには何も表示されず、何もフラグが立てられません)。楽器)。NSZombie に欠けているものはありますか?
xcode のデバッガーと ObjectAlloc からの情報をインストゥルメントで利用しようとしましたが、すべての情報は非常に不可解であり、実際には役に立ちません。
Objective-C 例外で停止するようにデバッガーを設定しました。それが行われると、これは示されているコール スタックです。
まず、「1??」ってどういうこと?? クエスチョンマークの意味は?第二に、コード内でこれが呼び出された場所をどのように知ることができますか? 記載されているすべての操作は一般的すぎます (たとえば、UIView の dealloc ですが、どの UIView で、どこで?)。
また、例外が発生すると、コードが何をするのかを理解するために何時間も費やさない限り、アセンブリ コードを指します。私はいくつかのアセンブリを知っていますが、もっと良い方法が必要です...よね?
例外が発生する前にコードで実行された最後の行について、意味のある情報を取得する方法はありますか?
いくつかの NSLog とブレークポイントを散らしてみましたが、ナビゲーション コントローラーからビュー コントローラーをポップした後にクラッシュが発生するため、あまり役に立ちません。ブレークポイントを配置するすべての場所で、ブレークポイントに問題なく到達します (クラッシュ後にブレークするポイントが見つかりません)。例外が発生するのは、デバッガーで「続行」したときだけです。クラッシュがコードの外で発生したかのように見えるので、どこでそれを処理すればよいかわかりません。
私は自分のコードを調べて、すべてのメモリ管理規則に準拠していることを再確認しました (少なくとも私の知る限りでは)。それは非常に微妙なものだと確信していますが、それを見つけることができないようです。
NSZombie を使用せずにそのようなバグを見つける方法を誰かが知っている場合は、共有してください。
ありがとう。
iphone - NSZombie の分析
不適切な命令または不適切な例外が発生し続けるため、NSZombieEnabled と必要なその他の変数を有効にしましたが、結果を分析する方法がわかりません。これはログに記録されたものです:
アップデート:
問題の原因を見つけたと思います。
保持カウントは次のように記録されます: 1 1 5 4
viewController を押すと、retainCount が 5 までジャンプする理由がわかりません =\
iphone - -[CALayer preserve]: 割り当て解除されたインスタンスに送信されたメッセージ
私はiPhoneアプリを開発しています.NSZombieEnabledをオンにすると、エラーで定期的にクラッシュします:
ビューコントローラーでビューをプッシュまたはポップすると、常に発生します。時々、前にこのエラーがあります:
どういう意味ですか?誰でも手がかりを持っているか、この問題に遭遇しましたか?
助けてくれてどうもありがとう!
ロマン
iphone - NSZombie がコンソールにログを記録しない
テーブル ビューの 1 つで EXC_BAD_ACCESS エラーが発生します。NSZombieEnabled キーを実行可能ファイルの環境変数に追加しようとしました。
画面がクラッシュしなくなったという点では機能しているようですが、ログから何が起こっているかを示すメッセージが表示されません
私は何を間違っていますか?
iphone - どういうわけか私のシングルトンプロパティがリリースされています
PoolManager
一部のデータをplistにロードして保存するというシングルトンオブジェクトがあります。私のプログラム全体を通して、何かが私のプールについて知る必要があるとき、それはその[PoolManager sharedPoolManager]
プロパティを要求します。私はこれらのプロパティを設定する責任がある単一のビューを持っており、他のすべてはそれから読み取っただけです。それはすべてうまく機能していました、そしてそれから私が言うことができない理由もなく、それはクラッシュし始めました。設定NSZombieEnabled = YES
すると、2つのNSString
プロパティのいずれかにアクセスすると、それらが解放されたように見えることがわかります。デバッガメッセージは次のとおりです。*** -[CFString respondsToSelector:]: message sent to deallocated instance 0x5a336d0
以前のスナップショットに戻ってみましたが、すべてが機能しましたが、それでもこれは実行されます。昨日からTimeMachineを使用してプロジェクトに戻ることもできましたが、それも同様です。私は困惑しています。
これがシングルトンオブジェクトコードです...明らかにゾンビであるのはsurface
と文字列です。shape
すべての申し訳ありませんNSLogs
nszombie - NSZombieEnabledを有効にできません
私はxcode_3.2.3_and_ios_sdk_4.0.1を使用しており、以下のすべてをセットアップします。
これを有効にするには(xcodeで)1。XcodeプロジェクトのExecutablesグループで実行可能ファイルをダブルクリックします。2.[引数]タブをクリックします。3.「環境に設定する変数:」セクションで、「NSZombieEnabled」という変数を作成し、その値を「YES」に設定します。
しかし、リークでNSZombieEnabledを確認できません。割り当ての右側にある[X]ボタンをクリックすると、5つのアイテムではなく、4つのアイテムのみが表示されます。「NSZombie検出を有効にする」チェックボックスが表示されません。
私のテスト用iPhoneは3Gで、更新された4.0iOSです。NSZombieEnableを使用するためのデバイスを使用できますか?
ありがとう。