2013-06-10 28 views
11

プロパティを持つSystem.Diagnostics名前空間内のDebuggerクラスに対応しています。デバッガが接続されているかどうかの検出*および*

この呼び出しを増やすことができるプロパティがありますか、実際にコードをステップインしているかどうかを教えてください。これは非常に起こりにくいかも知れませんが、知っておくと便利です。

  1. 初めて(デバッガ「休憩」はデバッグモードに入り、添付された後:

    EDIT

    おそらく、より良い質問

    ではなく、いくつかのコードを実行されている「ステッピング」 )

  2. もう一度実行されますが(まだ接続されていますが、「ステップスルー」ではありません)。
+0

興味深いですね...何をしようとしていますか? –

+0

私はこれが何を持っているのだろうかと不思議です。あなたは例を挙げることができますか?検出を行っているラインを踏んでいるならば、あなたが踏み込んでいるかどうかだけを検出することができます(もし可能ならば)。 – hatchet

+0

@hatchet、プールされたオブジェクトの有効期限が切れる比較的短いタイマーで実行されるコードがあります。ランタイム、これは正常に動作します - コードをステップ実行すると問題が発生する可能性があります。代替手段があります。これは、堅牢性のために採用する可能性が最も高いものですが、私はこの疑問を提起すると考えていました。 :) –

答えて

2

Debuggerの状態は、Debugger.CurrentModeプロパティから取得できます。しかし、それは現在、ブレーク状態にあるのか、プログラムが実行中であるのかを伝えるだけです。 「ステップ」モードはありません。それは、あなたがそれについて見つけ出すことができれば、そのアクションがすでに遅すぎることをほぼ確実に保証する瞬間です。実際にスレッドレースになることが保証されています。

+0

優れています。本質的に、ブレーク状態は私が望んでいたものでした。それでも、私はそれを中心にデザインするつもりはありませんが、私が探していたことを知っていてほんとうにうれしいです。 –

+0

'System.Diagnostics.Debugger'には、CurrentModeプロパティがありません。 [EnvDTE.Debugger](https://msdn.microsoft.com/en-us/library/envdte.debugger.currentmode.aspx) それ。私は、VS拡張機能でのみアクセス可能で、デバッグ中のプログラムではないことに気づいています。 – robert4

関連する問題