Udostępnij za pośrednictwem


Debug Klasa

Definicja

Udostępnia 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 /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 zwiększyć niezawodność kodu bez wpływu na wydajność i rozmiar kodu produktu wysyłkowego, użyj metod w Debug klasie, aby wydrukować informacje debugowania i sprawdzić logikę 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ą metody dynamicznego kontrolowania danych wyjściowych śledzenia. W przypadku aplikacji .NET Framework można modyfikować wartości tych przełączników bez ponownego komkompilowania 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 śledzenia można dostosować, dodając TraceListener wystąpienia do kolekcji lub usuwając je.Listeners Kolekcja Listeners jest współużytkowany przez klasy Debug i Trace ; dodanie odbiornika śledzenia do jednej z klas dodaje odbiornik do obu tych klas. Domyślnie DefaultTraceListener klasa emituje dane wyjściowe śledzenia.

Uwaga / Notatka

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 go wyliczyć w tym artykule. Może być przydatne umieszczenie wywołań do Debug metod w blokach w try/catch celu wykrywania i obsługi 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ęciami, użyj IndentSize właściwości . Możesz określić, czy automatycznie opróżnić bufor wyjściowy po każdym zapisie, ustawiając AutoFlush właściwość na truewartość .

W przypadku aplikacji .NET Framework można ustawić AutoFlush parametr i IndentSize , 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ń do 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 / Notatka

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).

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 na początku pliku. W języku Visual Basic dodaj /d:DEBUG=True opcję do wiersza polecenia kompilatora lub dodaj #Const DEBUG=True go do pliku.

Właściwości

Nazwa Opis
AutoFlush

Pobiera lub ustawia wartość wskazującą, czy Flush() należy wywołać element Listeners po każdym zapisie.

IndentLevel

Pobiera lub ustawia poziom wcięcia.

IndentSize

Pobiera lub ustawia liczbę spacji w wcięcie.

Listeners

Pobiera kolekcję odbiorników monitorujących dane wyjściowe debugowania.

Metody

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

Sprawdza warunek; Jeśli warunek to false, zwraca określony komunikat i wyświetla pole komunikatu, które wyświetla 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 wyświetla stos wywołań.

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

Sprawdza warunek; Jeśli warunek to false, generuje dwa komunikaty (proste i sformatowane) i wyświetla okno komunikatu, które wyświetla 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)

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

Assert(Boolean)

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

Close()

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

Fail(String, String)

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

Fail(String)

Emituje określony komunikat o błędzie.

Flush()

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

Indent()

Zwiększa prąd IndentLevel o jeden.

Print(String, Object[])

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

Print(String)

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

Unindent()

Zmniejsza bieżącą liczbę IndentLevel o jedną.

Write(Object, String)

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

Write(Object)

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

Write(String, String)

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

Write(String)

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

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Jeśli condition ma truewartość , zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

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, Object)

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

WriteIf(Boolean, String, String)

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

WriteIf(Boolean, String)

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

WriteLine(Object, String)

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

WriteLine(Object)

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

WriteLine(String, Object[])

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

WriteLine(String, String)

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

WriteLine(String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli określony 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, Object)

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

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, String)

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

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkiem.

Zobacz też