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í 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 |
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 potom 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í, ž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 |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Zapíše název kategorie a zprávu do naslouchacích procesů trasování v Listeners kolekci, pokud je |
WriteIf(Boolean, Object) |
Zapíše hodnotu metody objektu ToString() do naslouchacího procesu trasování v Listeners kolekci, pokud je |
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 |
WriteIf(Boolean, String) |
Zapíše zprávu do naslouchacích procesů trasování v Listeners kolekci, pokud je |
WriteIf(Boolean, String, String) |
Zapíše název kategorie a zprávu do naslouchacích procesů trasování v Listeners kolekci, 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č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 |
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 Listeners kolekci, pokud je |
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 |
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 Listeners kolekci, 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.