Compartilhar via


Debug Classe

Definição

Fornece um conjunto de métodos e propriedades que ajudam a depurar seu código.

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
Herança
Debug

Exemplos

O exemplo a seguir usa Debug para indicar o início e o fim da execução de um programa. O exemplo também usa Indent e Unindent para distinguir a saída de rastreamento.

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

Comentários

Para tornar seu código mais robusto sem afetar o desempenho e o tamanho do código do produto de envio, use métodos na Debug classe para imprimir informações de depuração e verificar sua lógica com declarações.

Essa classe fornece métodos para exibir uma Assert caixa de diálogo e emitir uma declaração que sempre falhará. Essa classe fornece métodos de gravação nas seguintes variações:

O BooleanSwitch e TraceSwitch as classes fornecem meios para controlar dinamicamente a saída de rastreamento. Para aplicativos do .NET Framework, você pode modificar os valores dessas opções sem recompilar seu aplicativo. Para obter informações sobre como usar o arquivo de configuração para definir uma opção em aplicativos .NET Framework, consulte a Switch classe e o artigo Trace Switches .

Você pode personalizar o destino da saída de rastreamento adicionando TraceListener instâncias ou removendo instâncias da Listeners coleção. A Listeners coleção é compartilhada pelas Debug classes e Trace pelas classes; adicionar um ouvinte de rastreamento a qualquer classe adiciona o ouvinte a ambos. Por padrão, a DefaultTraceListener classe emite a saída de rastreamento.

Observação

Adicionar um ouvinte de rastreamento à Listeners coleção pode fazer com que uma exceção seja gerada durante o rastreamento, se um recurso usado pelo ouvinte de rastreamento não estiver disponível. As condições e a exceção geradas dependem do ouvinte de rastreamento e não podem ser enumeradas neste artigo. Pode ser útil fazer chamadas aos Debug métodos em try/catch blocos para detectar e manipular quaisquer exceções de ouvintes de rastreamento.

Você pode modificar o nível de recuo usando o Indent método ou a IndentLevel propriedade. Para modificar o espaçamento de recuo, use a IndentSize propriedade. Você pode especificar se o buffer de saída será liberado automaticamente após cada gravação definindo a AutoFlush propriedade como true.

Para aplicativos do .NET Framework, você pode definir o e IndentSize para Debug editando o AutoFlush arquivo de configuração do aplicativo. O arquivo de configuração deve ser formatado conforme mostrado no exemplo a seguir.

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

O ConditionalAttribute atributo é aplicado aos métodos de Debug. Compiladores que dão suporte ConditionalAttribute a ignorar chamadas a esses métodos DEBUG , a menos que seja definido como um símbolo de compilação condicional. Consulte a documentação de um compilador para determinar se ConditionalAttribute há suporte e a sintaxe para definir um símbolo de compilação condicional.

Observação

Em projetos do Visual Studio C# e do Visual Basic, por padrão, o DEBUG símbolo de compilação condicional é definido para builds de depuração e o TRACE símbolo é definido para builds de depuração e de versão. Para obter informações sobre a depuração condicional no Visual C++, consulte a classe Debug (C++/CLI).

Para definir o DEBUG símbolo de compilação condicional em C#, adicione a opção /d:DEBUG à linha de comando do compilador ao compilar seu código usando uma linha de comando ou adicione #define DEBUG à parte superior do arquivo. No Visual Basic, adicione a opção /d:DEBUG=True à linha de comando do compilador ou adicione #Const DEBUG=True ao arquivo.

Propriedades

Nome Description
AutoFlush

Obtém ou define um valor que indica se Flush() deve ser chamado após Listeners cada gravação.

IndentLevel

Obtém ou define o nível de recuo.

IndentSize

Obtém ou define o número de espaços em um recuo.

Listeners

Obtém a coleção de ouvintes que está monitorando a saída de depuração.

Métodos

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

Verifica se há uma condição; se a condição for false, gerará uma mensagem especificada e exibirá uma caixa de mensagem que mostra a pilha de chamadas.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Verifica se há uma condição; se a condição for false, gerará uma mensagem especificada e exibirá uma caixa de mensagem que mostra a pilha de chamadas.

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

Verifica se há uma condição; se a condição for false, gerará duas mensagens (simples e formatadas) e exibirá uma caixa de mensagem que mostra a pilha de chamadas.

Assert(Boolean, String, String)

Verifica se há uma condição; se a condição for false, gerará duas mensagens especificadas e exibirá uma caixa de mensagem que mostra a pilha de chamadas.

Assert(Boolean, String)

Verifica se há uma condição; se a condição for false, gerará uma mensagem especificada e exibirá uma caixa de mensagem que mostra a pilha de chamadas.

Assert(Boolean)

Verifica se há uma condição; se a condição for false, exibirá uma caixa de mensagem que mostra a pilha de chamadas.

Close()

Libera o buffer de saída e, em seguida, chama o Close método em cada um Listenersdos .

Fail(String, String)

Emite uma mensagem de erro e uma mensagem de erro detalhada.

Fail(String)

Emite a mensagem de erro especificada.

Flush()

Libera o buffer de saída e faz com que os dados em buffer sejam gravados na Listeners coleção.

Indent()

Aumenta a corrente em IndentLevel um.

Print(String, Object[])

Grava uma cadeia de caracteres formatada seguida por um terminador de linha para os ouvintes de rastreamento na Listeners coleção.

Print(String)

Grava uma mensagem seguida por um terminador de linha para os ouvintes de rastreamento na Listeners coleção.

Unindent()

Diminui a corrente IndentLevel em um.

Write(Object, String)

Grava um nome de categoria e o valor do método do ToString() objeto para os ouvintes de rastreamento na Listeners coleção.

Write(Object)

Grava o valor do método do ToString() objeto nos ouvintes de rastreamento na Listeners coleção.

Write(String, String)

Grava um nome de categoria e uma mensagem para os ouvintes de rastreamento na Listeners coleção.

Write(String)

Grava uma mensagem para os ouvintes de rastreamento na Listeners coleção.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Grava um nome de categoria e uma mensagem nos ouvintes de rastreamento na Listeners coleção se uma condição especificada for true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Se condition for true, grava um nome de categoria e uma mensagem para os ouvintes de rastreamento na Listeners coleção.

WriteIf(Boolean, Object, String)

Grava um nome de categoria e o valor do método do ToString() objeto para os ouvintes de rastreamento na Listeners coleção se uma condição for true.

WriteIf(Boolean, Object)

Grava o valor do método do ToString() objeto nos ouvintes de rastreamento na Listeners coleção se uma condição for true.

WriteIf(Boolean, String, String)

Grava um nome de categoria e uma mensagem para os ouvintes de rastreamento na Listeners coleção se uma condição for true.

WriteIf(Boolean, String)

Grava uma mensagem nos ouvintes de rastreamento na Listeners coleção se uma condição for true.

WriteLine(Object, String)

Grava um nome de categoria e o valor do método do ToString() objeto para os ouvintes de rastreamento na Listeners coleção.

WriteLine(Object)

Grava o valor do método do ToString() objeto nos ouvintes de rastreamento na Listeners coleção.

WriteLine(String, Object[])

Grava uma mensagem formatada seguida por um terminador de linha para os ouvintes de rastreamento na Listeners coleção.

WriteLine(String, String)

Grava um nome de categoria e uma mensagem para os ouvintes de rastreamento na Listeners coleção.

WriteLine(String)

Grava uma mensagem seguida por um terminador de linha para os ouvintes de rastreamento na Listeners coleção.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Grava um nome de categoria e uma mensagem nos ouvintes de rastreamento na Listeners coleção se uma condição especificada for true.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Grava uma mensagem nos ouvintes de rastreamento na Listeners coleção se uma condição especificada for true.

WriteLineIf(Boolean, Object, String)

Grava um nome de categoria e o valor do método do ToString() objeto para os ouvintes de rastreamento na Listeners coleção se uma condição for true.

WriteLineIf(Boolean, Object)

Grava o valor do método do ToString() objeto nos ouvintes de rastreamento na Listeners coleção se uma condição for true.

WriteLineIf(Boolean, String, String)

Grava um nome de categoria e uma mensagem para os ouvintes de rastreamento na Listeners coleção se uma condição for true.

WriteLineIf(Boolean, String)

Grava uma mensagem nos ouvintes de rastreamento na Listeners coleção se uma condição for true.

Aplica-se a

Acesso thread-safe

Esse tipo é thread safe.

Confira também