問題タブ [exc-bad-access]
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.
objective-c - Obj-C のバグを追跡する巧妙な方法
私のObjective Cプログラムにバグがあり、一部のライブラリメソッドでマシンが深くクラッシュします。これは、スタックからメインまでのすべてのライブラリメソッドです(XCodeから提供されたものからは触れていません)。だから、私は少し謎を抱えています。
私が得ているエラーは次のとおりです。
さて、これはどこかで何かを何度もリリースしていること、またはそのようなことを意味していると確信しています。これは、セグ フォールトの客観的 C バージョンですよね?
私の質問は次のとおりです。自分のコードでは発生していないため、二重リリースしているものを追跡する賢い方法はありますか? それともコード検査が最善の策ですか?
ありがとう。
iphone - "obj!=nilを使用する場合のiPhoneのEXC_BAD_ACCESS
Objective-Cには非常に単純なコード行があります。
ときどき、理由もなく、EXC-BAD-ACCESSを使用してこのコード行でゲームがクラッシュします。通常、何かが競技場から削除される頃のように思われるので、selectedEntityが割り当て解除されたと推測すると、この結果になります。既存のエンティティを選択することは不可能であることに加えて(しかし、誰が知っているか、これは私のコードでは実際には当てはまらないかもしれません...)、アクセスする前に選択されたエンティティがあるかどうかを具体的にチェックしているという事実は、私がすべきではないことを意味しますここでは問題はありません。Objective-Cはブール型の短絡をサポートすることになっていますが、編集ではないようです。短絡は問題とは何の関係もないようです。
また、時々爆発していることを知っていたので、このコードブロックの周りに@ try / @ catchを配置しましたが、それは無視されているようです(EXC-BAD-ACCESSをキャッチできないと思います)。
だから基本的に私は誰かがこれを捕まえて捨てる方法を知っているのか(ゲームがクラッシュしない限りこのエラーを気にしないので)、なぜそれが起こるのか説明できるのだろうかと思っています。Objective-Cが「nil」値で奇妙なことをすることを知っているので、オブジェクトポインタでもnilでもない奇妙なスペースを指していると思います。
編集:明確にするために、私は以下のコードが間違っていることを知っています、それは私が私のプログラムで起こっていたと私が推測していたことです。私はそれが問題を引き起こすかどうか尋ねていました-それは確かにそうです。:-)
編集:消去される前にエンティティを選択できるフリンジケースがあるようです。したがって、コードの進行は次のようになります。
したがって、自動解放プールがまだ解放されていないため、オブジェクトはnilではありませんが、保持カウントは0であるため、とにかくアクセスすることはできません...またはそれらの線に沿った何か?
また、私のゲームはシングルスレッドなので、これはスレッドの問題ではありません。
編集:私は2つの方法で問題を修正しました。まず、そのフリンジケースではエンティティの選択を許可しませんでした。次に、[entities removeObjectAtIndex:i](削除されるエンティティを削除するコード)を呼び出す代わりに、次のように変更しました。
jibが提案したように、変数を解放すると同時に変数にnilを割り当てていることを確認してください。
xcode - ブレークポイントはXcodeで非アクティブ化されます:NSZombieEnabled==YESの場合はEXC_BAD_ACCESS
この質問は、XCode 3に対して尋ねられたため、はるかに時代遅れです。XCode4以降では有用であるとは考えないでください。=)
私のアプリは(一見)ランダムなイベントでクラッシュします。そこで、iPhoneアプリケーションをデバッグするためにNSZombieEnabledを追加したいと思いました。ターゲットのクローンを作成し、そのInfo.plistを元のターゲットと同じに設定し、NSZombieEnabledをYESに設定しました。
アプリを実行すると、スタックトレースが...でクラッシュします。
これは、NSZombieEnabledがYESに設定されている場合にのみ発生します。設定されていない場合、アプリは実行されるだけです(異なる時間にクラッシュします)
「-[_NSZombiemethodSignatureForSelector:]」などのブレークポイントを追加したかったのですが、デバッグ中に非アクティブになります。「シンボルを怠惰にロード」をオンまたはオフにして、両方の方法で試してみました。
また、〜/.gdbinitファイルをに設定しようとしました
これにより、コンソールでこの結果が得られます。
ブレークポイントが非アクティブ化されるのはなぜですか?
ios - 無効にすると、iPhoneでEXC_BAD_ACCESSを使用してNSTimerがクラッシュする
アプリケーションに2つのタイマーを設定しましたが、どちらも数秒ごとに繰り返されます。タイマーを無効にするときを除いて、すべてが正常に機能します。電話がロックされている場合、それらのタイマーを無効にして、電話のロックが解除されたときにそれらを再作成したいと思います。
通知を使用して、タイマーを無効化/作成するタイミングを認識しています。
これは、notify_didBecomeActiveメソッドに含まれるものです。
このnotify_willResigneActiveメソッドには次のものが含まれます。
問題は、2番目のタイマーの無効化でこれをデバッグすると、エラーが発生することです。奇妙なことに、タイマーの順序を切り替えると(最初にclockTickerを無効にするなど)、2番目のタイマーでもエラーが発生します。
何が間違っているのでしょうか?
ありがとう、レオナルド
iphone - UITableViewデリゲートメソッド内からインスタンス変数にアクセスするときに「EXC_BAD_ACCESS」を取得する
私のiPhoneアプリケーションは、UITableViewデリゲートメソッドの1つからインスタンス変数にアクセスすると爆発します。保持していると思うので、なぜ問題なくアクセスできないのかわかりません。
これが私の.hファイルです
@property(nonatomic、retain)NSDictionary * alert; @property(非アトミック、保持)NSString * alertKind;
@終わり
私の.mでは、アプリケーションは最初のNSLog呼び出しで停止します。
私は何が欠けていますか?
viewDidLoadメソッドにはまったく問題はありません。
objective-c - NSOutlineViewを使用する場合のEXC_BAD_ACCESS
アウトラインビューを取得してディレクトリを表示しようとしています。ここで、Appleの例を編集して、設定した任意のディレクトリから機能するようにしました。ただし、ノードを展開する場合は、NSOutlineViewクラスから「EXEC_BAD_ACCESS」を取得します。
ヘッダーファイルは次のとおりです。
そして、ここに実装ファイルがあります:
更新:最新バージョンでコードを更新しました
iphone - CGContextSetFillColorWithColor エラー (EXC_BAD_ACCESS)
このエラーでアプリがクラッシュする理由がわかりません。
displayLayer メソッドを実装しました (CALayer をレンダリングするため)。このメソッドを初めて実行すると、問題なく動作します。ただし、エラーが発生したときは、これを後で呼び出します。
self.bgColor がコンテキストの塗りつぶし色に設定されているときにエラーが発生するようです。興味深いことに...その行の直前にbgColorを作成すると、うまくいきます。しかし現状では、このクラス (displayLayer メソッドのコンテナー) の初期化時に bgColor が作成されています。
iphone - XcodeでEXC_BAD_ACCESSを中断しますか?
私はiPhone開発とXcode全般に不慣れで、EXC_BAD_ACCESS
信号のトラブルシューティングを開始する方法がわかりません。エラーの原因となっている正確な行でXcodeを壊すにはどうすればよいですか?
問題の原因となっている行でXcodeを停止させることができないようですが、デバッグコンソールに次の行が表示されます。
日10月25日15:12:14jasonsmacbookTestProject [1289]:CGContextSetStrokeColorWithColor:無効なコンテキスト
日10月25日15:12:14jasonsmacbookTestProject [1289]:CGContextSetLineWidth:無効なコンテキスト
日10月25日15:12:14jasonsmacbookTestProject [1289]:CGContextAddPath:無効なコンテキスト
日10月25日15:12:14jasonsmacbookTestProject [1289]:CGContextDrawPath:無効なコンテキスト
2009-10-25 15:12:14.680 LanderTest [1289:207] ***-[CFArray objectAtIndex:]:割り当て解除されたインスタンス0x3c4e610に送信されたメッセージ
今、私は自分が取得したコンテキストに描画し、UIGraphicsGetCurrentContext()
描画したいオブジェクトに渡そうとしています。
さらに試行錯誤を繰り返したところNSMutableArray
、クラスにプロパティがあるのはゾンビであることがわかりました。クラスの関数に入りましたinit
。使用していたコードは次のとおりです。
回線を削除すると信号[array release]
が届かなくなりましたが、EXC_BAD_ACCESS
なぜこれが機能するのか混乱しています。init
物件を利用したところ、自動的に保管してくれるので、漏れないように内部から解放する必要があると思いました。私はこれがどのように機能するかについて完全に混乱しており、私が読んだすべてのガイドとStackoverflowの質問は、initメソッド内でプロパティを設定する方法について私を混乱させるだけです。どちらの方法が最適かについては、コンセンサスが得られていないようです。
iphone - iPhoneのメモリ管理を待っています
モーダル ビューで別のコントローラーを提示しているときに、EXC_BAD_ACCESS を受け取ります。どうやら、そのコントローラーのviewDidLoadに到達すると、一部の変数が「無効」になります。ただし、20 秒程度待つと、コントローラーは正常にロードされます。
iPhone初心者です。初心者の質問で申し訳ありません。
c++ - OpenCV マトリックス アクセスは EXC_BAD_ACCESS を生成します
次のプログラムを scalefactory を 1.5 より大きくして実行すると、プログラムは EXC_BAD_ACCESS をスローします。プログラムは画像をスケーリングします。
たとえば、scalefactorx = 5、scalefactory = 2 を設定すると、x=1356 および y=409 付近で失敗します。
あなたが私を助けてくれることを願っています。