c# .net debugging system.diagnostics

c# - Diferencia entre Debugger.Launch y Debugger.Break



.net debugging (3)

Al leer la documentación, parece que Launch no hace nada si el depurador está conectado, en realidad no se rompe (aunque no lo he verificado).

Break le pide que inicie el depurador (si no está adjunto), y hace el break.

En realidad, es poco probable que tengas más de un punto de Launch ... si es así.

Cuál es la diferencia entre

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

?


Diferencias más sutiles:

  1. Si ya hay un depurador adjunto, Debugger.Launch es un nop ; mientras que Debugger.Break siempre se romperá en el depurador.

  2. El lanzamiento de un depurador no se divide realmente en el depurador. Por ejemplo, en Visual Studio, Debugger.Launch adjuntará un depurador al proceso en ejecución, pero aún deberá hacer una depuración | Romper en Visual Studio para romper realmente en el depurador.


El inicio iniciará un depurador cuando haya uno disponible. Pero solo se ignora si no hay ninguno disponible. Break se bloqueará el programa si no hay un depurador disponible.