2008-09-19 14 views

Respuesta

21

ponga la siguiente donde lo necesite:

System.Diagnostics.Debugger.Break(); 
3

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

39

También me gusta comprobar para ver si el depurador asociado - si llama Debugger.Break cuando no hay un depurador, se le pedirá al usuario si desea adjuntar una. Dependiendo del comportamiento que desea, es posible que desee llamar Debugger.Break() sólo si (o si no) uno ya ha sido fijada

using System.Diagnostics; 

//.... in the method: 

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

Esta debe ser la respuesta aceptada ... – MemphiZ

2

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

Juan ...

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

sólo funciona cuando se ha compilado con el símbolo de la compilación de depuración condicional establecido.

respuesta de Phillip ...

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

funcionará para cualquier depurador por lo que se da ninguna hackers un poco de miedo también.

También tome nota de SecurityException que puede tirar, así que no deje que el código salga a la naturaleza.

Otra razón que no a ...

Si ningún depurador asociado, se pide a los usuarios si quieren 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 de depurador .

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