32 Stimmen

Wie kann ich DebugBreak() in C# verwenden?

Wie lautet die Syntax und welcher Namensraum/Klasse muss importiert werden? Wenn möglich, geben Sie mir einen Beispielcode. Es wäre eine große Hilfe.

46voto

Philip Rieck Punkte 31977

Ich überprüfe auch gerne, ob der Debugger angehängt ist - wenn Sie Debugger.Break aufrufen, wenn kein Debugger vorhanden ist, wird der Benutzer gefragt, ob er einen anhängen möchte. Je nach gewünschtem Verhalten sollten Sie Debugger.Break() nur dann aufrufen, wenn bereits ein Debugger angehängt ist (oder wenn nicht)

using System.Diagnostics;

//.... in the method:

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

25voto

MagicKat Punkte 9409

Bringen Sie das Folgende dort an, wo Sie es brauchen:

System.Diagnostics.Debugger.Break();

8voto

John Hoven Punkte 4045

0 Stimmen

Großes +1 für #if DEBUG ! Es ist furchtbar, wenn die Entwickler diesen Code in der Version belassen.

3voto

Quintin Robinson Punkte 78652

Sie können verwenden System.Diagnostics.Debugger.Break() an einer bestimmten Stelle zu brechen. Dies kann in Situationen wie der Fehlersuche in einem Dienst hilfreich sein.

3voto

CAD bloke Punkte 8014

Die Antworten von @Philip Rieck und @John sind sehr unterschiedlich.

John's ...

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

funktioniert nur, wenn Sie mit dem DEBUG-Symbol für bedingte Kompilierung kompiliert haben.

Phillips Antwort ...

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

funktioniert mit jedem Debugger, so dass Sie auch Hackern einen kleinen Schrecken einjagen können.

Beachten Sie auch SecurityException also lassen Sie diesen Code nicht in die freie Wildbahn.

Ein weiterer Grund, nein zu sagen ...

Wenn kein Debugger angeschlossen ist, werden die Benutzer gefragt, ob sie einen Debugger anhängen wollen. Wenn der Benutzer dies bejaht, wird der Debugger gestartet. Wenn ein Debugger angehängt ist, wird dem Debugger ein Benutzer-Haltepunkt-Ereignis signalisiert, und der Debugger unterbricht die Ausführung des Prozesses, als ob ein Debugger Haltepunkt getroffen worden wäre.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X