Debug Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Kontroluje podmínku; Pokud je |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Kontroluje podmínku; Pokud je |
Assert(Boolean, String) |
Kontroluje podmínku; Pokud je |
Assert(Boolean, String, String) |
Kontroluje podmínku; Pokud je |
Assert(Boolean, String, String, Object[]) |
Kontroluje podmínku; Pokud je |
Close() |
Vyprázdní výstupní vyrovnávací paměť a pak zavolá metodu |
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 |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners , pokud je |
WriteIf(Boolean, Object) |
Zapíše hodnotu metody objektu ToString() do naslouchacích procesů trasování v kolekci Listeners , pokud je |
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 |
WriteIf(Boolean, String) |
Zapíše zprávu do naslouchacích procesů trasování v kolekci Listeners , pokud je |
WriteIf(Boolean, String, String) |
Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners , pokud je |
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 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners , pokud je |
WriteLineIf(Boolean, Object) |
Zapíše hodnotu metody objektu ToString() do naslouchacích procesů trasování v kolekci Listeners , pokud je |
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 |
WriteLineIf(Boolean, String) |
Zapíše zprávu do naslouchacích procesů trasování v kolekci Listeners , pokud je |
WriteLineIf(Boolean, String, String) |
Zapíše název kategorie a zprávu do naslouchacích procesů trasování v kolekci Listeners , pokud je |
Platí pro
Bezpečný přístup z více vláken
Tento typ je bezpečný pro přístup z více vláken.