2010-12-16 1 views
1

なぜブレークポイントは常に線に結びついているのですか。なぜ、状態や状態の変化だけに結びついているブレークポイントを持つことができないのですか?これはクラス全体のブレークポイントにどのように関連していますか?ブレークポイントだけが状態になるのではなく、行に結びついているのはなぜですか?

通常、任意の時点で実行を中断できます。実行ポイントがどこにあっても、特定の状態がヒットしたときにIDEのサスペンド実行を実行できないのはなぜですか?これらの休憩はどのように実装しますか? (私は、状態の変化が停止を引き起こした時点で、デバッグされているコードが継続している可能性があると想定しています)。

最近私は、特定のファイルにアクセスしたときに実行を中断する方法があるのか​​疑問に思ったときに、私のデバッグプロセスがターゲットブレークポイントとグローバル検索ベースの2つのコンポーネントコードについての愚痴がふるまう。

デューデリジェンス:関連投稿here、少なくとも。

追加:Visual Studio上のC#で特に興味深いことがあります。マークウィルキンズのリンクを使って、Visual Studioで "データブレークポイント"の設定を追跡できました。

答えて

1

アドレスの値が変更されたときにデバッガで停止するようにブレークポイントを設定することができます(データブレークポイント)。 GDBではwatchpointと呼ばれています。 Visual Studioでは、データブレークポイントも設定できます(Debug \ newブレークポイントメニュー)。

+0

偉大なリンク、感謝を - 「GDBは、プログラムをシングルステップ、変数の値を通常の実行よりも数百倍遅くなるたびに、テストすることによって、ソフトウェアwatchpointingを行います(。しかし、これはまだあなたのプログラムのどの部分が原因であるかを知ることができないエラーをキャッチする価値があるかもしれません) "同様に私はあなたが*単一のステップを踏んで、いくつかのフラグが立てられているかどうかを確認できますそれらのフラグを設定するための外部コードのためのメカニズムを提供していますか? –

+1

私はGDBを使用してスピードの問題を十分に処理していませんでした(私はほとんどの時間をWindowsで費やし、ほとんどの日にVisual Studioを使います)。しかし、わかりやすい問題を見つけるのを助けることができれば、遅さは価値があると私は同意します。困難な部分は、同時実行性/タイミングの問題であり、追加されたブレークポイントが十分な変更を引き起こし、問題が発生しない場合です。 –

1

"データブレークポイント"はVSに要求されることがよくありますが、CLRに実装するのに十分高い優先度は決してないようです。おそらく、ここでそれをupvote行く:

http://connect.microsoft.com/VisualStudio/feedback/details/333647/data-breakpoints-in-managed-code

+1

投票は終了しましたが、ヒントが含まれています - 「anaged Data Breakpointsは私たちが長らく望んでいたものですCLRには重要なインフラがあり、これを実装するには欠けています。ほとんどの人は回避策としてこれを使用してフィールドにアクセスし、プロパティの設定者にブレークポイントを設定します。 –

関連する問題