c# debugging debugbreak

¿Cómo puedo usar debugbreak() en C#?



debugging (5)

¿Cuál es la sintaxis y qué espacio de nombres / clase necesita importarse? Dame un código de muestra si es posible. Sería de gran ayuda.


Coloque lo siguiente donde lo necesite:

System.Diagnostics.Debugger.Break();


Las respuestas de @Philip Rieck y @John son sutilmente diferentes.

John''s ...

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

solo funciona si compiló con el conjunto de símbolos de compilación condicionales DEBUG.

La respuesta de Phillip ...

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

funcionará para cualquier depurador, por lo que también les dará un poco de miedo a los hackers.

También tome nota de SecurityException que puede arrojar, así que no deje que el código salga al aire libre.

Otra razón por la que no ...

Si no hay un depurador conectado, se les preguntará a los usuarios si desean adjuntar un depurador. Si los usuarios dicen que sí, se inicia el depurador. Si se conecta un depurador, el depurador se señala con un evento de punto de interrupción de usuario y el depurador suspende la ejecución del proceso como si se hubiera alcanzado un punto de interrupción del depurador.

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


También me gustaría verificar si el depurador está conectado: si llama a Debugger.Break cuando no hay depurador, le preguntará si desea adjuntar uno. Dependiendo del comportamiento que desee, puede llamar a Debugger.Break () solo si (o si no) uno ya está adjunto

using System.Diagnostics; //.... in the method: if( Debugger.IsAttached) //or if(!Debugger.IsAttached) { Debugger.Break(); }


puede usar System.Diagnostics.Debugger.Break() para romper en un lugar específico ... esto puede ayudar en situaciones como la depuración de un servicio.