Debug Třída

Definice

Poskytuje sadu metod a vlastností, které pomáhají ladit kód.

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
Dědičnost
Debug

Příklady

Následující příklad používá Debug k označení začátku a konce provádění programu. Příklad také používá Indent a Unindent k rozlišení výstupu trasování.

// 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

Poznámky

Pokud chcete, aby byl váš kód robustnější, aniž by to mělo vliv na výkon a velikost kódu expedičního produktu, použijte metody ve Debug třídě k tisku informací o ladění a kontrole logiky kontrolními výrazy.

Tato třída poskytuje metody pro zobrazení dialogového okna a generování kontrolního Assert výrazu, který vždy selže. Tato třída poskytuje metody zápisu v následujících variantách:

TraceSwitch Třídy BooleanSwitch poskytují prostředky k dynamickému řízení výstupu trasování. U aplikací rozhraní .NET Framework můžete změnit hodnoty těchto přepínačů, aniž byste museli aplikaci znovu zkompilovat. Informace o použití konfiguračního souboru k nastavení přepínače v aplikacích rozhraní .NET Framework najdete v Switch článku třídy a trasovacích přepínačů .

Cíl výstupu trasování můžete přizpůsobit přidáním TraceListener instancí do kolekce nebo odebráním instancí z Listeners kolekce. Kolekce Listeners je sdílena oběma Debug Trace třídami; přidání naslouchacího procesu trasování do obou tříd přidá naslouchací proces. Ve výchozím nastavení DefaultTraceListener třída generuje výstup trasování.

Poznámka

Přidání naslouchacího procesu trasování do Listeners kolekce může způsobit vyvolání výjimky při trasování, pokud prostředek používaný naslouchacím procesem trasování není dostupný. Podmínky a vyvolaná výjimka závisí na naslouchacím procesu trasování a nelze je v tomto článku vyčíst. Může být užitečné umístit volání Debug metod do try/catch bloků pro detekci a zpracování výjimek z naslouchacích procesů trasování.

Úroveň odsazení můžete upravit pomocí Indent metody nebo IndentLevel vlastnosti. Pokud chcete změnit mezery mezi odsazením, použijte IndentSize vlastnost. Můžete určit, zda se má výstupní vyrovnávací paměť automaticky vyprázdnit po každém zápisu AutoFlush nastavením vlastnosti na true.

U aplikací .NET Framework můžete nastavit a IndentSize nastavit AutoFlush Debug úpravou konfiguračního souboru aplikace. Konfigurační soubor by měl být naformátovaný, jak je znázorněno v následujícím příkladu.

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

Atribut ConditionalAttribute se použije na metody Debug. Kompilátory, které podporují ConditionalAttribute ignorování volání těchto metod, pokud DEBUG nejsou definovány jako symbol podmíněné kompilace. Informace o tom, jestli ConditionalAttribute se podporuje, a syntaxi pro definování symbolu podmíněné kompilace najdete v dokumentaci kompilátoru.

Poznámka

V Visual Studio projektech C# a Visual Basic je ve výchozím nastavení DEBUG definován symbol podmíněné kompilace pro sestavení ladění a TRACE symbol je definován pro sestavení ladění i vydané verze. Informace o podmíněném ladění v jazyce Visual C++najdete v tématu Ladicí třída (C++/CLI).

Pokud chcete definovat DEBUG symbol podmíněné kompilace v jazyce C#, přidejte /d:DEBUG možnost do příkazového řádku kompilátoru při kompilaci kódu pomocí příkazového řádku nebo přidejte #define DEBUG na začátek souboru. V Visual Basic přidejte /d:DEBUG=True možnost do příkazového řádku kompilátoru nebo přidejte #Const DEBUG=True do souboru.

Vlastnosti

AutoFlush

Získá nebo nastaví hodnotu označující, zda Flush() se má volat po každém zápisu Listeners .

IndentLevel

Získá nebo nastaví úroveň odsazení.

IndentSize

Získá nebo nastaví počet mezer v odsazení.

Listeners

Získá kolekci naslouchacích procesů, které monitorují výstup ladění.

Metody

Assert(Boolean)

Kontroluje podmínku; pokud je falsepodmínka , zobrazí okno se zprávou, ve které se zobrazuje zásobník volání.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Kontroluje podmínku; pokud je falsepodmínka , vypíše zadanou zprávu a zobrazí okno se zprávou, která zobrazuje zásobník volání.

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

Kontroluje podmínku; pokud je falsepodmínka , vypíše zadanou zprávu a zobrazí okno se zprávou, která zobrazuje zásobník volání.

Assert(Boolean, String)

Kontroluje podmínku; pokud je falsepodmínka , vypíše zadanou zprávu a zobrazí okno se zprávou, která zobrazuje zásobník volání.

Assert(Boolean, String, String)

Kontroluje podmínku; pokud je falsepodmínka , vypíše dvě zadané zprávy a zobrazí okno se zprávou, která zobrazuje zásobník volání.

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

Kontroluje podmínku; pokud je falsepodmínka , vypíše dvě zprávy (jednoduché a formátované) a zobrazí okno se zprávou, která zobrazuje zásobník volání.

Close()

Vyprázdní výstupní vyrovnávací paměť a potom zavolá metodu Close Listenerspro každý z nich .

Fail(String)

Vygeneruje zadanou chybovou zprávu.

Fail(String, String)

Vygeneruje chybovou zprávu a podrobnou chybovou zprávu.

Flush()

Vyprázdní výstupní vyrovnávací paměť a způsobí, že se data uložená do vyrovnávací paměti zapisují do Listeners kolekce.

Indent()

Zvyšuje aktuální o jeden.IndentLevel

Print(String)

Zapíše zprávu následovanou ukončovačem řádku do naslouchacích procesů trasování v kolekci Listeners .

Print(String, Object[])

Zapíše formátovaný řetězec následovaný ukončovacím znakem řádku do naslouchacích procesů trasování v kolekci Listeners .

Unindent()

Sníží aktuální o jeden.IndentLevel

Write(Object)

Zapíše hodnotu metody objektu ToString() do naslouchacích procesů trasování v kolekci Listeners .

Write(Object, String)

Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacích procesů trasování v kolekci Listeners .

Write(String)

Zapíše zprávu do naslouchacího procesu trasování v kolekci Listeners .

Write(String, String)

Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners .

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Pokud condition ano true, napíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners .

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Zapíše název kategorie a zprávu do naslouchacích procesů trasování v Listeners kolekci, pokud je truezadaná podmínka .

WriteIf(Boolean, Object)

Zapíše hodnotu metody objektu ToString() do naslouchacího procesu trasování v Listeners kolekci, pokud je truepodmínka .

WriteIf(Boolean, Object, String)

Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacího procesu trasování v Listeners kolekci, pokud je truepodmínka .

WriteIf(Boolean, String)

Zapíše zprávu do naslouchacích procesů trasování v Listeners kolekci, pokud je truepodmínka .

WriteIf(Boolean, String, String)

Zapíše název kategorie a zprávu do naslouchacích procesů trasování v Listeners kolekci, pokud je truepodmínka .

WriteLine(Object)

Zapíše hodnotu metody objektu ToString() do naslouchacích procesů trasování v kolekci Listeners .

WriteLine(Object, String)

Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacích procesů trasování v kolekci Listeners .

WriteLine(String)

Zapíše zprávu následovanou ukončovačem řádku do naslouchacích procesů trasování v kolekci Listeners .

WriteLine(String, Object[])

Zapíše formátovanou zprávu následovanou ukončením řádku do naslouchacích procesů trasování v kolekci Listeners .

WriteLine(String, String)

Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners .

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Zapíše zprávu do naslouchacích procesů trasování v kolekci, Listeners pokud je truezadaná podmínka .

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci, Listeners pokud je truezadaná podmínka .

WriteLineIf(Boolean, Object)

Zapíše hodnotu metody objektu ToString() do naslouchacích procesů trasování v Listeners kolekci, pokud je truepodmínka .

WriteLineIf(Boolean, Object, String)

Zapíše název kategorie a hodnotu metody objektu ToString() do naslouchacích procesů trasování v Listeners kolekci, pokud je truepodmínka .

WriteLineIf(Boolean, String)

Zapíše zprávu do naslouchacích procesů trasování v kolekci, Listeners pokud je truepodmínka .

WriteLineIf(Boolean, String, String)

Zapíše název kategorie a zprávu do naslouchacích procesů trasování v Listeners kolekci, pokud je truepodmínka .

Platí pro

Bezpečný přístup z více vláken

Tento typ je bezpečný pro přístup z více vláken.

Viz také