web-dev-qa-db-ja.com

C#でdebugbreak()を使用するにはどうすればよいですか?

構文とは何ですか?また、どの名前空間/クラスをインポートする必要がありますか?可能であればサンプルコードを教えてください。それは大いに役立つでしょう。

31
Prache

また、デバッガーが接続されているかどうかを確認するのも好きです。デバッガーがないときにDebugger.Breakを呼び出すと、ユーザーがデバッガーを接続するかどうかを確認するメッセージが表示されます。必要な動作によっては、Debugger.Break()が既に接続されている場合(または接続されていない場合)にのみ呼び出すことができます。

using System.Diagnostics;

//.... in the method:

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}
41
Philip Rieck

必要な場所に次のものを置きます。

System.Diagnostics.Debugger.Break();
21
MagicKat

http://msdn.Microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx

#if DEBUG
  System.Diagnostics.Debugger.Break();
#endif
8
John Hoven

System.Diagnostics.Debugger.Break()を使用して、特定の場所で中断できます。これは、サービスのデバッグなどの状況で役立ちます。

3

@PhilipRieckと@Johnからの回答は微妙に異なります。

ジョンの.。

#if DEBUG
  System.Diagnostics.Debugger.Break();
#endif

dEBUG条件付きコンパイルシンボルセットを使用してコンパイルした場合にのみ機能します。

フィリップの答え.。

if( Debugger.IsAttached) //or if(!Debugger.IsAttached)
{
  Debugger.Break();
}

どのデバッガーでも機能するので、ハッカーにも少し怖がらせるでしょう。

また、スローされる可能性があるSecurityExceptionにも注意してください。そのため、そのコードを公開しないでください。

もう一つの理由は...

デバッガーが接続されていない場合、ユーザーはデバッガーを接続するかどうかを尋ねられます。ユーザーが「はい」と答えると、デバッガーが開始されます。デバッガーが接続されている場合、デバッガーはユーザーブレークポイントイベントで通知され、デバッガーは、デバッガーブレークポイントに到達したかのようにプロセスの実行を一時停止します。

から https://msdn.Microsoft.com/en-us/library/system.diagnostics.debugger.break(v = vs.110).aspx

2
CAD bloke