Sdílet prostřednictvím


Debug Třída

Definice

Poskytuje sadu metod a vlastností, které pomáhají s laděním kódu.

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 odliš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 váš kód byl robustnější, aniž by to mělo vliv na výkon a velikost kódu vašeho expedičního produktu, použijte metody ve Debug třídě k tisku informací o ladění a zkontrolujte logiku pomocí kontrolních výrazů.

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

Třídy BooleanSwitch a TraceSwitch poskytují prostředky pro dynamické řízení výstupu trasování. U aplikací .NET Framework můžete upravit hodnoty těchto přepínačů bez opětovného zkompilování aplikace. Informace o použití konfiguračního souboru k nastavení přepínače v aplikacích .NET Framework najdete Switch ve třídě a v článku Přepínače trasování .

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

Poznámka

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

Úroveň odsazení můžete upravit pomocí Indent metody nebo IndentLevel vlastnosti . Pokud chcete upravit odsazení, použijte IndentSize vlastnost . Nastavením vlastnosti na hodnotu můžete určit, jestli se má výstupní vyrovnávací paměť po každém zápisu automaticky vyprázdnit AutoFlushtrue.

Pro aplikace .NET Framework můžete nastavit AutoFlush a IndentSize pro Debug úpravou konfiguračního souboru aplikace. Konfigurační soubor by měl být formátovaný tak, 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 nástroje Debug. Kompilátory, které podporují ConditionalAttribute , ignorují volání těchto metod, pokud DEBUG není definován 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 projektech Visual Studio C# a Visual Basic je ve výchozím nastavení DEBUG symbol podmíněné kompilace definován pro sestavení ladění a TRACE symbol je definován jak pro sestavení ladění, tak pro sestavení vydané verze. Informace o podmíněném ladění v jazyce Visual C++ najdete v tématu Třída ladění (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řidání #define DEBUG na začátek souboru. V jazyce 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() má být volána na 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ý monitoruje výstup ladění.

Metody

Assert(Boolean)

Kontroluje podmínku; Pokud je falsepodmínka , zobrazí okno se zprávou se zásobníkem volání.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Kontroluje podmínku; Pokud je falsepodmínka , výstupem je zadaná zpráva a zobrazí se okno se zprávou se zásobníkem volání.

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

Kontroluje podmínku; Pokud je falsepodmínka , výstupem je zadaná zpráva a zobrazí se okno se zprávou se zásobníkem volání.

Assert(Boolean, String)

Kontroluje podmínku; Pokud je falsepodmínka , výstupem je zadaná zpráva a zobrazí se okno se zprávou se zásobníkem volání.

Assert(Boolean, String, String)

Kontroluje podmínku; Pokud je falsepodmínka , výstup 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 , výstup 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 pak zavolá metodu Close na každém z .Listeners

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í zápis dat do vyrovnávací paměti do Listeners kolekce.

Indent()

Zvýší proud IndentLevel o jednu.

Print(String)

Zapíše zprávu následovanou ukončovacím znakem řá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íží proud IndentLevel o jednu.

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ích procesů 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 je true, zapíš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 kolekci Listeners , pokud je truezadaná podmínka .

WriteIf(Boolean, Object)

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

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, String)

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

WriteIf(Boolean, String, String)

Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners , 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čovacím znakem řádku do naslouchacích procesů trasování v kolekci Listeners .

WriteLine(String, Object[])

Zapíše formátovanou zprávu následovanou ukončovacím znakem řá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 kolekci Listeners , 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 kolekci Listeners , 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 kolekci Listeners , 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é