3

クローズドソースアプリケーション用のサードパーティプラグインを作成しています。XCodeデバッガーで問題が発生しています。

デバッガーを使用して、作成しているプラ​​グインのコードをステップ実行したいと思います。これを行うには、コードにブレークポイントを設定し、ホストアプリを起動してから、XCodeデバッガーをホストアプリのプロセスに接続しました。私の問題は、ブレークポイントで停止するのではなく、プログラムの別の部分によってスローされた例外でデバッガーが停止することです。(具体的には、これThread 2: EXC_ARITHMETIC (code=EXC_i386_DIV, subcode=0x0):)

この例外は頻繁にスローされるため、実際に関心のあるコードをステップスルーすることは事実上不可能になります。

この例外をスローするアプリの部分のソースコードがないため、この例外をキャッチして処理することはできません。

この状況で、誰かが私のコードをデバッグする方法を提案できますか?XCodeデバッガーに、この特定EXC_ARITHMETICの例外を単に「無視」し、代わりに、明示的に設定したブレークポイントでのみ停止するように指示する方法はありますか?

アップデート

@ user1118321は、ブレークポイントペインを使用して例外ブレークポイントをオフにすることを提案しました。ここに示す設定を使用してそうしようとしました。

ここに画像の説明を入力してください

「評価後に自動的に続行する」を選択すると、デバッガが停止しないのではないかと思いました。そうではありませんでした。

contまた、停止後にデバッガーに発行してみました。これもうまくいかないようです。

ここに画像の説明を入力してください

EXC_ARITHMETICデバッガーが例外で停止しないようにするために、ここに入力する必要がある設定についてアドバイスしてもらえますか?

4

2 に答える 2

3

これは整数の「ゼロ除算」エラー例外です。私の知る限り、これらはC ++例外として伝播されません。そのため、これらを破ることはできません。

プラグインがロードされていなくても、それは起こりますか?そうでない場合は、プラグインが何らかの理由でゼロ除算を引き起こしています。

于 2013-02-03T18:51:10.087 に答える
0

@user1118321によって提案されたリンクをたどりました。数時間頭をかいた後、ゼロ除算の例外をオフにするか、処理する方法がわかりませんでした。誰かが何かアイデアを持っているなら、私はそれらを聞いてうれしいです。

ただし、XCodeの代わりにGDBを使用するという回避策を見つけました。XCodeとは異なり、GDBはで止まらないようでEXC_ARITHMETIC、コードに足を踏み入れることができます。そのため、当面はデバッグのためにGDBに切り替えます。

編集

私の場合、2番目の(より良い)回避策は、例外をスローしていたスレッドを一時停止することでした。これにより、プラグインのコードをステップスルーすることもできました。

于 2013-02-04T12:02:36.377 に答える