Debug Klass

Definition

Tillhandahåller en uppsättning metoder och egenskaper som du kan använda för att felsöka koden.

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
Arv
Debug

Exempel

I följande exempel används Debug för att ange början och slutet av ett programs körning. Exemplet använder Indent också och Unindent för att särskilja spårningsutdata.

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

Kommentarer

Om du vill göra koden mer robust utan att påverka leveransproduktens prestanda och kodstorlek använder du metoder i Debug klassen för att skriva ut felsökningsinformation och kontrollera logiken med försäkran.

Den här klassen innehåller metoder för att visa en Assert dialogruta och för att generera en försäkran som alltid misslyckas. Den här klassen innehåller skrivmetoder i följande varianter:

Klasserna BooleanSwitch och TraceSwitch ger möjlighet att dynamiskt kontrollera spårningsutdata. För .NET Framework-appar kan du ändra värdena för dessa växlar utan att kompilera om ditt program. Information om hur du använder konfigurationsfilen för att ange en växel i .NET Framework-appar finns i artikeln Switch och Trace Switches.

Du kan anpassa spårningsutdatans mål genom att lägga till TraceListener instanser i eller ta bort instanser från Listeners samlingen. Samlingen Listeners delas av både klasserna Debug och Trace . Om du lägger till en spårningslyssnare i någon av klasserna läggs lyssnaren till i båda. Som standard DefaultTraceListener genererar klassen spårningsutdata.

Note

Om du lägger till en spårningslyssnare i Listeners samlingen kan ett undantag genereras under spårningen, om en resurs som används av spårningslyssnaren inte är tillgänglig. Villkoren och undantaget som genereras beror på spårningslyssnaren och kan inte räknas upp i den här artikeln. Det kan vara användbart att ringa anrop till Debug metoderna i try/catch block för att identifiera och hantera eventuella undantag från spårningslyssnare.

Du kan ändra indragsnivån med hjälp Indent av metoden eller IndentLevel egenskapen . Om du vill ändra indragsavståndet använder du IndentSize egenskapen . Du kan ange om utdatabufferten ska tömmas automatiskt efter varje skrivning genom att ange AutoFlush egenskapen till true.

För .NET Framework-appar kan du ange AutoFlush och IndentSize för Debug genom att redigera appens konfigurationsfil. Konfigurationsfilen ska formateras enligt följande exempel.

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

Attributet ConditionalAttribute tillämpas på metoderna Debugför . Kompilatorer som stöder ConditionalAttribute ignorerar anrop till dessa metoder om de inte DEBUG definieras som en villkorsstyrd kompileringssymbol. Se dokumentationen för en kompilator för att avgöra om ConditionalAttribute stöds och syntaxen för att definiera en villkorsstyrd kompileringssymbol.

Note

I Visual Studio C# och Visual Basic projekt definieras som standard symbolen DEBUG villkorlig kompilering för felsökningsversioner, och symbolen TRACE definieras för både felsöknings- och versionsversioner. Information om villkorsstyrd felsökning i Visual C++finns i Felsökningsklass (C++/CLI).

Om du vill definiera symbolen DEBUG för villkorsstyrd kompilering i C# lägger du till /d:DEBUG alternativet på kommandoraden för kompilatorn när du kompilerar koden med hjälp av en kommandorad eller lägger till #define DEBUG överst i filen. I Visual Basic lägger du till alternativet /d:DEBUG=True på kommandoraden för kompilatorn eller lägger till #Const DEBUG=True i filen.

Egenskaper

Name Description
AutoFlush

Hämtar eller anger ett värde som anger om Flush() ska anropas efter Listeners varje skrivning.

IndentLevel

Hämtar eller anger indragsnivån.

IndentSize

Hämtar eller anger antalet blanksteg i ett indrag.

Listeners

Hämtar den samling lyssnare som övervakar felsökningsutdata.

Metoder

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

Söker efter ett villkor. om villkoret är falsematar ut ett angivet meddelande och visar en meddelanderuta som visar anropsstacken.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Söker efter ett villkor. om villkoret är falsematar ut ett angivet meddelande och visar en meddelanderuta som visar anropsstacken.

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

Söker efter ett villkor. om villkoret är falsematar ut två meddelanden (enkla och formaterade) och visar en meddelanderuta som visar anropsstacken.

Assert(Boolean, String, String)

Söker efter ett villkor. om villkoret är falsematar ut två angivna meddelanden och visar en meddelanderuta som visar anropsstacken.

Assert(Boolean, String)

Söker efter ett villkor. om villkoret är falsematar ut ett angivet meddelande och visar en meddelanderuta som visar anropsstacken.

Assert(Boolean)

Söker efter ett villkor. om villkoret är falsevisar en meddelanderuta som visar anropsstacken.

Close()

Tömer utdatabufferten och anropar Close sedan metoden på var och en Listenersav .

Fail(String, String)

Genererar ett felmeddelande och ett detaljerat felmeddelande.

Fail(String)

Genererar det angivna felmeddelandet.

Flush()

Rensar utdatabufferten och gör att buffrade data skrivs Listeners till samlingen.

Indent()

Ökar strömmen IndentLevel med en.

Print(String, Object[])

Skriver en formaterad sträng följt av en radavgränsare till spårningslyssnare i Listeners samlingen.

Print(String)

Skriver ett meddelande följt av en radavgränsare till spårningslyssnare Listeners i samlingen.

Unindent()

Minskar strömmen IndentLevel med en.

Write(Object, String)

Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen.

Write(Object)

Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen.

Write(String, String)

Skriver ett kategorinamn och ett meddelande till spårningslyssnare i Listeners samlingen.

Write(String)

Skriver ett meddelande till spårningslyssnare i Listeners samlingen.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett angivet villkor är true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Om condition är trueskriver du ett kategorinamn och ett meddelande till spårningslyssnare i Listeners samlingen.

WriteIf(Boolean, Object, String)

Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är true.

WriteIf(Boolean, Object)

Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är true.

WriteIf(Boolean, String, String)

Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är true.

WriteIf(Boolean, String)

Skriver ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är true.

WriteLine(Object, String)

Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen.

WriteLine(Object)

Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen.

WriteLine(String, Object[])

Skriver ett formaterat meddelande följt av en radavgränsare till spårningslyssnare i Listeners samlingen.

WriteLine(String, String)

Skriver ett kategorinamn och ett meddelande till spårningslyssnare i Listeners samlingen.

WriteLine(String)

Skriver ett meddelande följt av en radavgränsare till spårningslyssnare Listeners i samlingen.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett angivet villkor är true.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Skriver ett meddelande till spårningslyssnare Listeners i samlingen om ett angivet villkor är true.

WriteLineIf(Boolean, Object, String)

Skriver ett kategorinamn och värdet för objektets metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är true.

WriteLineIf(Boolean, Object)

Skriver värdet för objektets -metod till spårningslyssnare ToString() i Listeners samlingen om ett villkor är true.

WriteLineIf(Boolean, String, String)

Skriver ett kategorinamn och ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är true.

WriteLineIf(Boolean, String)

Skriver ett meddelande till spårningslyssnare Listeners i samlingen om ett villkor är true.

Gäller för

Trådsäkerhet

Den här typen är trådsäker.

Se även