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

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:

As BooleanSwitch classes e as TraceSwitch classes fornecem meios para controlar dinamicamente a saída de rastreamento. Para aplicativos .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 Desativar Comutadores.

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 uma das classes 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 deseja liberar automaticamente o buffer de saída após cada gravação definindo a AutoFlush propriedade como true.

Para aplicativos .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 Visual Studio C# e 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 compilações 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. Em Visual Basic, adicione a opção /d:DEBUG=True à linha de comando do compilador ou adicione #Const DEBUG=True ao arquivo.

Propriedades

AutoFlush

Obtém ou define um valor que indica se Flush() deve ser chamado no Listeners após 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

Assert(Boolean)

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

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Verifica 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, Debug+AssertInterpolatedStringHandler)

Verifica 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)

Verifica 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)

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

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

Verifica 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.

Close()

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

Fail(String)

Emite a mensagem de erro especificada.

Fail(String, String)

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

Flush()

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

Indent()

Aumenta o IndentLevel atual em um.

Print(String)

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

Print(String, Object[])

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

Unindent()

Diminui o IndentLevel atual em um.

Write(Object)

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

Write(Object, String)

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

Write(String)

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

Write(String, String)

Grava um nome de categoria e mensagem nos ouvintes de rastreamento da coleção Listeners.

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, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteIf(Boolean, Object)

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

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, String)

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

WriteIf(Boolean, String, String)

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

WriteLine(Object)

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

WriteLine(Object, String)

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

WriteLine(String)

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

WriteLine(String, Object[])

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

WriteLine(String, String)

Grava um nome de categoria e mensagem nos ouvintes de rastreamento da coleção Listeners.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteLineIf(Boolean, Object)

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

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, String)

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

WriteLineIf(Boolean, String, String)

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

Aplica-se a

Acesso thread-safe

Este tipo é thread-safe.

Confira também