.NET (特に 2.0、特に C#) で、デバッガーで特定のブレークポイントを設定することを忘れずに、ソース コードがその時点でブレークポイントが設定されているかのようにデバッグ ブレークをトリガーする方法を探しています。本番ランタイムに干渉することなく。
私たちのコードは、リンクしているクライアント アプリケーションを中断しないように、本番環境で例外を飲み込む必要がありますが、デバッガーで実行されている場合にそのようなエラーがポップアップして分析されるように設定しようとしています。 、それ以外の場合は安全に無視されます。
私の試みDebug.Assert(false)
は理想的とは言えずDebug.Fail()
、同じように動作すると思います。理論的には本番環境では効果がなく、デバッグ時に正常に停止しますが、実際のブレークポイントでできるように、そのエラーを無視したい場合に実行を継続する方法は設計上 (私が知る限り) ありません。 、そしてエラーを飲み込む本番環境で行うように。また、デバッガーは実際にはネイティブ システム コードで停止し、私たちのコードでは停止しないため、変数の状態の評価が明らかに中断されるため、デバッグのヘルプは限られています。(たぶん、変数などを確認するために物事に戻る方法が欠けているのかもしれません.???)
のようなものを期待してDebug.Break()
いましたが、存在しないようです (.NET の新しいバージョンでない限り?)、他のDebug
方法も適用できないようです。
更新: ctacke の答えは私が探していたものに最もよく一致しますが、Debug.Assert() のトリックも発見しました。デバッガーで実行している場合、デバッガーを一時停止し、デバッグのコードに移動します。保留中の呼び出しをアサートし (フレームワーク コードでダウンしているため、緑色で強調表示されています)、Step-Out (Shift-F11) を押してから、アサート ダイアログ ボックスで [無視] を押します。これにより、アサートが返されたときにデバッガーが一時停止したままになります (無視されたため、アサートが発生しなかったかのように実行を継続できます)。ほぼ同じことを行う方法は他にもあるかもしれません ([再試行] を押すと、より直接的に実行できますか?)、この方法は直感的でした。