34

違いは何ですか

Debugger.Launch();
Debugger.Break();

?

4

4 に答える 4

22

ドキュメントを読むとLaunch、デバッガーが接続されている場合は何もしないように思えます-実際には壊れません(私はこれを確認していませんが)。

Break デバッガーを起動するように要求し (接続されてない場合)、ブレークを行います。

実際には、複数のLaunchポイントを持っている可能性は低いです... もしそうなら。

于 2010-09-21T10:39:16.847 に答える
20

Launchは、デバッガーが使用可能になったときにデバッガーを開始します。ただし、使用可能なものがない場合は無視されます。デバッガーが使用できない場合、Breakはプログラムをクラッシュさせます。

于 2010-09-21T11:18:30.900 に答える
10

より微妙な違い:

  1. デバッガーが既にアタッチされている場合、Debugger.Launch はnopです。一方、 Debugger.Break常にデバッガーに侵入します。

  2. デバッガーを起動しても、実際にはデバッガーが中断されません。たとえば、Visual Studio ではDebugger.Launch、実行中のプロセスにデバッガーをアタッチしますが、それでもデバッグを実行する必要があります。Visual Studio で中断して、デバッガーで実際に中断します。

于 2010-12-12T05:23:34.743 に答える