違いは何ですか
Debugger.Launch();
Debugger.Break();
?
ドキュメントを読むとLaunch
、デバッガーが接続されている場合は何もしないように思えます-実際には壊れません(私はこれを確認していませんが)。
Break
デバッガーを起動するように要求し (接続されていない場合)、ブレークを行います。
実際には、複数のLaunch
ポイントを持っている可能性は低いです... もしそうなら。
Launchは、デバッガーが使用可能になったときにデバッガーを開始します。ただし、使用可能なものがない場合は無視されます。デバッガーが使用できない場合、Breakはプログラムをクラッシュさせます。
より微妙な違い:
デバッガーが既にアタッチされている場合、Debugger.Launch はnopです。一方、
Debugger.Break
常にデバッガーに侵入します。
デバッガーを起動しても、実際にはデバッガーが中断されません。たとえば、Visual Studio ではDebugger.Launch
、実行中のプロセスにデバッガーをアタッチしますが、それでもデバッグを実行する必要があります。Visual Studio で中断して、デバッガーで実際に中断します。