Freigeben über


Debug-Klasse

Stellt eine Reihe von Methoden und Eigenschaften zum Debuggen von Code bereit. Diese Klasse kann nicht vererbt werden.

Namespace: System.Diagnostics
Assembly: System (in system.dll)

Syntax

'Declaration
Public NotInheritable Class Debug
'Usage
Dim instance As Debug
public sealed class Debug
public ref class Debug sealed
public final class Debug
public final class Debug

Hinweise

Wenn Sie die Methoden der Debug-Klasse verwenden, um Debuginformationen auszugeben und die Logik mit Assertionen zu überprüfen, machen Sie den Code robuster, ohne die Leistung oder den Codeumfang des Endprodukts zu beeinflussen.

In Visual Studio 2005-Projekten wird durch das Erstellen eines Debugbuilds Debug aktiviert. Informationen über das Deaktivieren von Debug finden Sie in der Dokumentation zu Visual Studio 2005.

Im Gegensatz dazu ist in Visual Studio 2005-Projekten Trace in der Standardeinstellung sowohl für Release- als auch für Debugbuilds aktiviert, sodass in Release- und Debugbuilds Code für alle Ablaufverfolgungsmethoden generiert wird. Daher können Sie mit Trace Releasebuilds instrumentieren.

Diese Klasse stellt Methoden für die Anzeige des Dialogfelds Assert und die Ausgabe einer Assertion bereit, die immer fehlschlägt. Diese Klasse stellt folgende Varianten von Write-Methoden bereit: Write, WriteLine, WriteIf und WriteLineIf.

Mit der BooleanSwitch-Klasse und der TraceSwitch-Klasse kann die Ausgabe der Ablaufverfolgung dynamisch gesteuert werden. Sie können die Werte dieser Schalter ändern, ohne die Anwendung erneut zu kompilieren. Informationen über das Festlegen eines Schalters mithilfe der Konfigurationsdatei finden Sie unter der Switch-Klasse und im Thema Ablaufverfolgungsschalter.

Sie können das Ziel der Ausgabe der Ablaufverfolgung anpassen, indem Sie in der Listeners-Auflistung TraceListener-Instanzen hinzufügen oder aus dieser entfernen. Standardmäßig erfolgt die Ausgabe der Ablaufverfolgung über die DefaultTraceListener-Klasse.

Mithilfe der Indent-Methode oder der IndentLevel-Eigenschaft können Sie die Einzugsebene ändern. Mit der IndentSize-Eigenschaft können Sie den Einzugsabstand ändern. Sie können angeben, ob der Ausgabepuffer nach jedem Schreibvorgang automatisch geleert werden soll, indem Sie die AutoFlush-Eigenschaft auf true festlegen.

Zum Festlegen von AutoFlush und IndentSize für Debug bearbeiten Sie die Konfigurationsdatei, die dem Namen der Anwendung entspricht. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert werden:

 <configuration>
     <system.diagnostics>
        <trace autoflush="true" indentsize="7" />
     </system.diagnostics>
  </configuration>

Hinweis

Wenn Sie das Debuggen in C# aktivieren möchten, fügen Sie in der Compilerbefehlszeile beim Kompilieren des Codes das /d:DEBUG-Flag hinzu oder fügen Sie #define DEBUG am Anfang der Datei ein. Fügen Sie in Visual Basic in der Compilerbefehlszeile das /d:DEBUG=True-Flag hinzu. Um entsprechende Funktionen in C++ bereitzustellen, müssen Sie Aufrufe von Methoden dieser Klasse in einem #ifdef DEBUG... #endif-Block einschließen. Diese Syntax ist compilerspezifisch. Wenn Sie keinen der oben angegebenen Compiler verwenden, lesen Sie zum Aktivieren der bedingten Kompilierung in der Dokumentation zum Compiler nach, um Informationen über die Attribute für die bedingte Kompilierung in den Methoden von Debug zu erhalten.

Thema Position
Gewusst wie: Bedingtes Kompilieren mit Ablaufverfolgung und Debuggen .NET Framework: Debuggen
Gewusst wie: Verfolgen von Code in einer Anwendung .NET Framework: Debuggen
Gewusst wie: Erstellen und Initialisieren von Ablaufverfolgungslistenern .NET Framework: Debuggen
Gewusst wie: Konfigurieren von Ablaufverfolgungsschaltern .NET Framework: Debuggen
Gewusst wie: Hinzufügen von Ablaufverfolgungsanweisungen zu Anwendungscode .NET Framework: Debuggen
Gewusst wie: Erstellen und Initialisieren von Ablaufverfolgungslistenern .NET Framework: Debuggen
Gewusst wie: Bedingtes Kompilieren mit Ablaufverfolgung und Debuggen .NET Framework: Debuggen
Gewusst wie: Konfigurieren von Ablaufverfolgungsschaltern .NET Framework: Debuggen
Gewusst wie: Verfolgen von Code in einer Anwendung .NET Framework: Debuggen
Gewusst wie: Hinzufügen von Ablaufverfolgungsanweisungen zu Anwendungscode .NET Framework: Debuggen

Beispiel

Im folgenden Beispiel wird mit Debug der Anfang und das Ende für die Programmausführung angegeben. Außerdem wird in dem Beispiel die Ausgabe der Ablaufverfolgung mit Indent und Unindent hervorgehoben.

Shared Function Main(args() As String) As Integer
    Debug.Listeners.Add(New TextWriterTraceListener(Console.Out))
    Debug.AutoFlush = True
    Debug.Indent()
    Debug.WriteLine("Entering Main")
    Console.WriteLine("Hello World.")
    Debug.WriteLine("Exiting Main")
    Debug.Unindent()
    Return 0
End Function 'Main
static int Main(string[] args)
{
   Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
   Debug.AutoFlush = true;
   Debug.Indent();
   Debug.WriteLine("Entering Main");
   Console.WriteLine("Hello World.");
   Debug.WriteLine("Exiting Main"); 
   Debug.Unindent();
   return 0;
}
#using <System.dll>
int main( void )
{
   using namespace System;
   using namespace System::Diagnostics;
   Debug::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Debug::AutoFlush = true;
   Debug::Indent();
   Debug::WriteLine( "Entering Main" );
   Console::WriteLine( "Hello World." );
   Debug::WriteLine( "Exiting Main" );
   Debug::Unindent();
   return 0;
}

Vererbungshierarchie

System.Object
  System.Diagnostics.Debug

Threadsicherheit

Dieser Typ ist sicher bei Multithreadoperationen.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Debug-Member
System.Diagnostics-Namespace
Trace
Switch
BooleanSwitch-Klasse
TraceSwitch
TraceListener
DefaultTraceListener
ConsoleTraceListener-Klasse
EventLogTraceListener
TraceListenerCollection
ConditionalAttribute-Klasse