Debug Klasa

Definicja

Zawiera zestaw metod i właściwości, które ułatwiają debugowanie kodu.

public ref class Debug abstract sealed
public ref class Debug sealed
public static class Debug
public sealed class Debug
type Debug = class
Public Class Debug
Public NotInheritable Class Debug
Dziedziczenie
Debug

Przykłady

W poniższym przykładzie użyto Debug metody , aby wskazać początek i koniec wykonywania programu. W przykładzie użyto Indent również funkcji i Unindent do odróżnienia danych wyjściowych śledzenia.

// Specify /DDEBUG when compiling.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;

int main( void )
{
   #if defined(DEBUG)
   Debug::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Debug::AutoFlush = true;
   Debug::Indent();
   Debug::WriteLine( "Entering Main" );
   #endif
   Console::WriteLine( "Hello World." );
   #if defined(DEBUG)
   Debug::WriteLine( "Exiting Main" );
   Debug::Unindent();
   #endif
   return 0;
}
// Specify /d:DEBUG when compiling.

using System;
using System.Data;
using System.Diagnostics;

class Test
{
    static void Main()
    {
       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();
    }
}
' Specify /d:DEBUG=True when compiling.

Imports System.Data
Imports System.Diagnostics

Class Test

    Shared Sub Main()
    
        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()
        
    End Sub
    
End Class

Uwagi

Aby kod był bardziej niezawodny bez wpływu na wydajność i rozmiar kodu produktu wysyłkowego, użyj metod w Debug klasie do drukowania informacji debugowania i sprawdzania logiki przy użyciu asercji.

Ta klasa udostępnia metody wyświetlania okna dialogowego Assert i emitowania potwierdzenia, które zawsze zakończy się niepowodzeniem. Ta klasa udostępnia metody zapisu w następujących odmianach:

Klasy BooleanSwitch i TraceSwitch zapewniają sposób dynamicznego kontrolowania danych wyjściowych śledzenia. W przypadku aplikacji .NET Framework można modyfikować wartości tych przełączników bez ponownego komplikowania aplikacji. Aby uzyskać informacje na temat używania pliku konfiguracji do ustawiania przełącznika w aplikacjach .NET Framework, zobacz Switch klasę i artykuł Trace Switchs (Przełączniki śledzenia).

Element docelowy danych wyjściowych śledzenia można dostosować, dodając TraceListener wystąpienia do kolekcji lub usuwając je.Listeners Kolekcja Listeners jest współużytkowana zarówno przez klasy, Debug jak i Trace klasy; dodanie odbiornika śledzenia do jednej z klas dodaje odbiornik do obu tych klas. Domyślnie DefaultTraceListener klasa emituje dane wyjściowe śledzenia.

Uwaga

Dodanie odbiornika śledzenia do Listeners kolekcji może spowodować zgłoszenie wyjątku podczas śledzenia, jeśli zasób używany przez odbiornik śledzenia jest niedostępny. Warunki i zgłoszony wyjątek zależą od odbiornika śledzenia i nie można ich wyliczyć w tym artykule. Może być przydatne umieszczenie wywołań do Debug metod w try/catch blokach w celu wykrywania i obsługi wszelkich wyjątków od odbiorników śledzenia.

Poziom wcięcia można zmodyfikować przy użyciu Indent metody lub IndentLevel właściwości. Aby zmodyfikować odstępy między wcięciem IndentSize , użyj właściwości . Możesz określić, czy automatycznie opróżnić bufor wyjściowy po każdym zapisie AutoFlush , ustawiając właściwość na true.

W przypadku aplikacji .NET Framework można ustawić element AutoFlush iIndentSize, Debug edytując plik konfiguracji aplikacji. Plik konfiguracji powinien być sformatowany, jak pokazano w poniższym przykładzie.

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

Atrybut ConditionalAttribute jest stosowany do metod .Debug Kompilatory, które obsługują ConditionalAttribute ignorowanie wywołań tych metod, chyba że DEBUG jest zdefiniowany jako symbol kompilacji warunkowej. Zapoznaj się z dokumentacją kompilatora, aby określić, czy ConditionalAttribute jest obsługiwana, oraz składnia definiowania symbolu kompilacji warunkowej.

Uwaga

W projektach Visual Studio C# i Visual Basic domyślnie DEBUG symbol kompilacji warunkowej jest definiowany dla kompilacji debugowania, a TRACE symbol jest definiowany zarówno dla kompilacji debugowania, jak i kompilacji wydania. Aby uzyskać informacje na temat debugowania warunkowego w języku Visual C++, zobacz Debug class (C++/CLI) (Klasa debugowania (C++/CLI).

Aby zdefiniować DEBUG symbol kompilacji warunkowej w języku C#, dodaj /d:DEBUG opcję do wiersza polecenia kompilatora podczas kompilowania kodu przy użyciu wiersza polecenia lub dodaj #define DEBUG go do góry pliku. W Visual Basic dodaj /d:DEBUG=True opcję do wiersza polecenia kompilatora lub dodaj #Const DEBUG=True do pliku.

Właściwości

AutoFlush

Pobiera lub ustawia wartość wskazującą, czy Flush() ma być wywoływana po każdym zapisie Listeners .

IndentLevel

Pobiera lub ustawia poziom wcięcia.

IndentSize

Pobiera lub ustawia liczbę spacji w wcięcie.

Listeners

Pobiera kolekcję odbiorników, które monitoruje dane wyjściowe debugowania.

Metody

Assert(Boolean)

Sprawdza warunek; jeśli warunek to false, wyświetla pole komunikatu, które pokazuje stos wywołań.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Sprawdza warunek; jeśli warunek to false, zwraca określony komunikat i wyświetla pole komunikatu, które pokazuje stos wywołań.

Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler)

Sprawdza warunek; jeśli warunek to false, zwraca określony komunikat i wyświetla pole komunikatu, które pokazuje stos wywołań.

Assert(Boolean, String)

Sprawdza warunek; jeśli warunek to false, zwraca określony komunikat i wyświetla pole komunikatu, które pokazuje stos wywołań.

Assert(Boolean, String, String)

Sprawdza warunek; jeśli warunek to false, zwraca dwa określone komunikaty i wyświetla pole komunikatu, które pokazuje stos wywołań.

Assert(Boolean, String, String, Object[])

Sprawdza warunek; Jeśli warunek to false, generuje dwa komunikaty (proste i sformatowane) i wyświetla pole komunikatu, które pokazuje stos wywołań.

Close()

Opróżnia bufor wyjściowy, a następnie wywołuje metodę Close na każdym z elementów Listeners.

Fail(String)

Emituje określony komunikat o błędzie.

Fail(String, String)

Emituje komunikat o błędzie i szczegółowy komunikat o błędzie.

Flush()

Opróżnia bufor wyjściowy i powoduje buforowane dane do zapisu w kolekcji Listeners .

Indent()

Zwiększa bieżącą wartość IndentLevel o jedną.

Print(String)

Zapisuje komunikat, po którym następuje terminator wiersza do odbiorników śledzenia w kolekcji Listeners .

Print(String, Object[])

Zapisuje sformatowany ciąg, po którym następuje terminator wiersza do odbiorników śledzenia w kolekcji Listeners .

Unindent()

Zmniejsza bieżącą wartość IndentLevel o jedną.

Write(Object)

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w kolekcji Listeners .

Write(Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w kolekcji Listeners .

Write(String)

Zapisuje komunikat do odbiorników śledzenia w kolekcji Listeners .

Write(String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Jeśli condition jest to true, zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli określony warunek to true.

WriteIf(Boolean, Object)

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

WriteIf(Boolean, Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteIf(Boolean, String)

Zapisuje komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

WriteIf(Boolean, String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

WriteLine(Object)

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w kolekcji Listeners .

WriteLine(Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w kolekcji Listeners .

WriteLine(String)

Zapisuje komunikat, po którym następuje terminator wiersza do odbiorników śledzenia w kolekcji Listeners .

WriteLine(String, Object[])

Zapisuje sformatowany komunikat, po którym następuje terminator wiersza do odbiorników śledzenia w kolekcji Listeners .

WriteLine(String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Zapisuje komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli określony warunek to true.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli określony warunek to true.

WriteLineIf(Boolean, Object)

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

WriteLineIf(Boolean, Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteLineIf(Boolean, String)

Zapisuje komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

WriteLineIf(Boolean, String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkowo.

Zobacz też