BlackCoin's Corner

In diesem Blog dreht es sich zu 90 % um den Themenbereich C# .Net

Die Klasse Debugger

Der NS System.Diagnistics, bringt neben den bekannten Verdächtigen wie zB. Process, Debug oder EventLog auch noch eine Klasse mit die uns beim Debugging ein wenig unter die Arme greifen kann.

zb kann man mittels der dem Folgen Code überprüfen, ob die Anwendung im Debugger läuft.
if (Debugger.IsAttached)                
Debug.Write("Debugger Is Attached");

Man kann sogar dem Debugger einen Breakpoint unterschieben, zB. wenn man von der Existens eines Fehler weiß, jedoch nichts über dessen Umstände oder Reproduzierbarkeit. Das einzige was man weiß, ist zb Beispiel der Fehler, in einer Methode auftritt sobald der Übergabeparameter 0 ist. (zB. weil durch 0 geteilt wird) 
public void Berechung(int zahl){
                if (zahl == 0){
                    if(Debugger.IsAttached) 
                        Debugger.Break(); 
                    else{
                        MessageBox.Show("Fehler", "Fehler"); 
                        return; 
                    }                } 
... 
            } 

Dieser Code macht nichts anderes, als zu prüfen, ob der Übergabeparameter 0 ist und wenn die Anwendung im Debugger läuft, dann unterbreche an genau dieser Stelle. (Ich weiß, dass ich das ganze auch in der IDE, über das Context-Menü, des Breakpoint abfangen könnte)




Posted: Nov 12 2009, 07:56 von Lars Schmitt | mit 2 comment(s)
Abgelegt unter:

Kommentare

ThorstenHans sagte:

Die Methode Break() der Klasse Debugger bietet vor allem einen Performance Vorteil, die Ausführung des Codes ist um einiges schneller wenn der Debugger über den Code und nicht über die IDE per "klick oder F9" gesetzt wird.

# November 13, 2009 11:25

Lars Schmitt sagte:

Hallo Thorsten,

Herzlichen Dank für deinen Kommentar,

ich hatte es zwar vermutet, aber wirklich gewusst hatte ich das nicht

# November 13, 2009 11:29
Kommentar abgeben

(verpflichtend) 

(verpflichtend) 

(optional)

(verpflichtend)