問題タブ [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.

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

objective-c - Obj-C のバグを追跡する巧妙な方法

私のObjective Cプログラムにバグがあり、一部のライブラリメソッドでマシンが深くクラッシュします。これは、スタックからメインまでのすべてのライブラリメソッドです(XCodeから提供されたものからは触れていません)。だから、私は少し謎を抱えています。

私が得ているエラーは次のとおりです。

さて、これはどこかで何かを何度もリリースしていること、またはそのようなことを意味していると確信しています。これは、セグ フォールトの客観的 C バージョンですよね?

私の質問は次のとおりです。自分のコードでは発生していないため、二重リリースしているものを追跡する賢い方法はありますか? それともコード検査が最善の策ですか?

ありがとう。

0 投票する
5 に答える
5005 参照

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を割り当てていることを確認してください。

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

xcode - ブレークポイントはXcodeで非アクティブ化されます:NSZombieEnabled==YESの場合はEXC_BAD_ACCESS

この質問は、XCode 3に対して尋ねられたため、はるかに時代遅れです。XCode4以降では有用であるとは考えないでください。=)


私のアプリは(一見)ランダムなイベントでクラッシュします。そこで、iPhoneアプリケーションをデバッグするためにNSZombieEnabledを追加したいと思いました。ターゲットのクローンを作成し、そのInfo.plistを元のターゲットと同じに設定し、NSZombieEnabledをYESに設定しました。

アプリを実行すると、スタックトレースが...でクラッシュします。

これは、NSZombieEnabledがYESに設定されている場合にのみ発生します。設定されていない場合、アプリは実行されるだけです(異なる時間にクラッシュします)

「-[_NSZombiemethodSignatureForSelector:]」などのブレークポイントを追加したかったのですが、デバッグ中に非アクティブになります。「シンボルを怠惰にロード」をオンまたはオフにして、両方の方法で試してみました。

また、〜/.gdbinitファイルをに設定しようとしました

これにより、コンソールでこの結果が得られます。

ブレークポイントが非アクティブ化されるのはなぜですか?

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

ios - 無効にすると、iPhoneでEXC_BAD_ACCESSを使用してNSTimerがクラッシュする

アプリケーションに2つのタイマーを設定しましたが、どちらも数秒ごとに繰り返されます。タイマーを無効にするときを除いて、すべてが正常に機能します。電話がロックされている場合、それらのタイマーを無効にして、電話のロックが解除されたときにそれらを再作成したいと思います。

通知を使用して、タイマーを無効化/作成するタイミングを認識しています。

これは、notify_didBecomeActiveメソッドに含まれるものです。

このnotify_willResigneActiveメソッドには次のものが含まれます。

問題は、2番目のタイマーの無効化でこれをデバッグすると、エラーが発生することです。奇妙なことに、タイマーの順序を切り替えると(最初にclockTickerを無効にするなど)、2番目のタイマーでもエラーが発生します。

何が間違っているのでしょうか?

ありがとう、レオナルド

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

iphone - UITableViewデリゲートメソッド内からインスタンス変数にアクセスするときに「EXC_BAD_ACCESS」を取得する

私のiPhoneアプリケーションは、UITableViewデリゲートメソッドの1つからインスタンス変数にアクセスすると爆発します。保持していると思うので、なぜ問題なくアクセスできないのかわかりません。

これが私の.hファイルです

@property(nonatomic、retain)NSDictionary * alert; @property(非アトミック、保持)NSString * alertKind;

@終わり

私の.mでは、アプリケーションは最初のNSLog呼び出しで停止します。

私は何が欠けていますか?

viewDidLoadメソッドにはまったく問題はありません。

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

objective-c - NSOutlineViewを使用する場合のEXC_BAD_ACCESS

アウトラインビューを取得してディレクトリを表示しようとしています。ここで、Appleの例を編集して、設定した任意のディレクトリから機能するようにしました。ただし、ノードを展開する場合は、NSOutlineViewクラスから「EXEC_BAD_ACCESS」を取得します。

ヘッダーファイルは次のとおりです。

そして、ここに実装ファイルがあります:

更新:最新バージョンでコードを更新しました

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

iphone - CGContextSetFillColorWithColor エラー (EXC_BAD_ACCESS)

このエラーでアプリがクラッシュする理由がわかりません。

displayLayer メソッドを実装しました (CALayer をレンダリングするため)。このメソッドを初めて実行すると、問題なく動作します。ただし、エラーが発生したときは、これを後で呼び出します。

self.bgColor がコンテキストの塗りつぶし色に設定されているときにエラーが発生するようです。興味深いことに...その行の直前にbgColorを作成すると、うまくいきます。しかし現状では、このクラス (displayLayer メソッドのコンテナー) の初期化時に bgColor が作成されています。

0 投票する
10 に答える
57771 参照

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メソッド内でプロパティを設定する方法について私を混乱させるだけです。どちらの方法が最適かについては、コンセンサスが得られていないようです。

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

iphone - iPhoneのメモリ管理を待っています

モーダル ビューで別のコントローラーを提示しているときに、EXC_BAD_ACCESS を受け取ります。どうやら、そのコントローラーのviewDidLoadに到達すると、一部の変数が「無効」になります。ただし、20 秒程度待つと、コントローラーは正常にロードされます。

iPhone初心者です。初心者の質問で申し訳ありません。

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

c++ - OpenCV マトリックス アクセスは EXC_BAD_ACCESS を生成します

次のプログラムを scalefactory を 1.5 より大きくして実行すると、プログラムは EXC_BAD_ACCESS をスローします。プログラムは画像をスケーリングします。

たとえば、scalefactorx = 5、scalefactory = 2 を設定すると、x=1356 および y=409 付近で失敗します。

あなたが私を助けてくれることを願っています。