Debug Classe

Definição

Fornece um conjunto de métodos e propriedades que ajudam a depurar o 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 seguinte serve Debug para indicar o início e o fim da execução de um programa. O exemplo também utiliza Indent e Unindent para distinguir a saída de traço.

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

Observações

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

Esta classe fornece métodos para mostrar uma Assert caixa de diálogo e emitir uma asserção que falhará sempre. Esta classe fornece métodos de escrita nas seguintes variações:

As BooleanSwitch classes e TraceSwitch fornecem meios para controlar dinamicamente a saída do traçado. Para aplicações .NET Framework, pode modificar os valores destes switches sem ter de recompilar a sua aplicação. Para informações sobre como usar o ficheiro de configuração para definir um switch nas aplicações .NET Framework, consulte a classe Switch e o artigo Trace Switches.

Pode personalizar o destino da saída do rastreio adicionando TraceListener ou removendo instâncias da Listeners coleção. A Listeners coleção é partilhada tanto pelas classes como DebugTrace pelas classes; adicionar um ouvinte de traço a qualquer uma das classes adiciona o ouvinte a ambas. Por defeito, a DefaultTraceListener classe emite saída de traço.

Note

Adicionar um ouvinte de rastreio à Listeners coleção pode causar uma exceção durante o rastreamento, caso um recurso utilizado pelo ouvinte de rastreio não esteja disponível. As condições e a exceção lançada dependem do ouvinte de traços e não podem ser enumeradas neste artigo. Pode ser útil fazer chamadas aos Debug métodos em try/catch blocos para detetar e tratar quaisquer exceções dos ouvintes de traços.

Pode modificar o nível de indentação usando o Indent método ou a IndentLevel propriedade. Para modificar o espaçamento do reentro, use a IndentSize propriedade. Pode especificar se deve esvaziar automaticamente o buffer de saída após cada escrita, definindo a AutoFlush propriedade para true.

Para .NET aplicações Framework, podes definir o AutoFlush e IndentSize para Debug editando o ficheiro de configuração da tua aplicação. O ficheiro de configuração deve ser formatado conforme mostrado no exemplo seguinte.

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

O ConditionalAttribute atributo aplica-se aos métodos de Debug. Compiladores que suportam ConditionalAttribute ignorar chamadas a estes métodos, a menos que DEBUG esteja definido como um símbolo de compilação condicional. Consulte a documentação do compilador para determinar se ConditionalAttribute é suportado e a sintaxe para definir um símbolo de compilação condicional.

Note

Em projetos Visual Studio C# e Visual Basic, por defeito, o símbolo de compilação condicional DEBUG é definido para compilações de depuração, e o símbolo TRACE é definido tanto para compilações de depuração como para releases. Para informações sobre depuração condicional em Visual C++, veja Classe Debug (C++/CLI).

Para definir o DEBUG símbolo de compilação condicional em C#, adicione a /d:DEBUG opção à linha de comandos do compilador quando compilar o seu código usando uma linha de comandos, ou adicione #define DEBUG no topo do seu ficheiro. Em Visual Basic, adicione a opção /d:DEBUG=True à linha de comandos do compilador ou adicione #Const DEBUG=True ao ficheiro.

Propriedades

Name Description
AutoFlush

Recebe ou define um valor que indica se Flush() deve ser chamado após Listeners cada escrita.

IndentLevel

Obtém ou define o nível da recuação.

IndentSize

Obtém ou define o número de espaços num reentro.

Listeners

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

Métodos

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

Verifica uma condição; Se a condição for false, gera duas mensagens (simples e formatadas) e exibe uma caixa de mensagens que mostra a pilha de chamadas.

Assert(Boolean, String, String)

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

Assert(Boolean, String)

Verifica uma condição; Se a condição for false, gera uma mensagem especificada e exibe uma caixa de mensagens que mostra a pilha de chamadas.

Assert(Boolean)

Verifica uma condição; Se a condição for false, exibe uma caixa de mensagem que mostra a pilha de chamadas.

Close()

Limpa o buffer de saída e depois chama o Close método em cada um dos Listeners.

Fail(String, String)

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

Fail(String)

Emite a mensagem de erro especificada.

Flush()

Limpa o buffer de saída e faz com que os dados em buffer escrevam na Listeners coleção.

Indent()

Aumenta a corrente IndentLevel em um.

Print(String, Object[])

Escreve uma cadeia formatada seguida de um terminador de linha para os ouvintes de rastreio na Listeners coleção.

Print(String)

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

Unindent()

Diminui a corrente IndentLevel em um.

Write(Object, String)

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

Write(Object)

Escreve o valor do método do ToString() objeto para os ouvintes de traços na Listeners coleção.

Write(String, String)

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

Write(String)

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

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, Object)

Escreve o valor do método do ToString() objeto para os ouvintes de traços na Listeners coleção se uma condição for true.

WriteIf(Boolean, String, String)

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

WriteIf(Boolean, String)

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

WriteLine(Object, String)

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

WriteLine(Object)

Escreve o valor do método do ToString() objeto para os ouvintes de traços na Listeners coleção.

WriteLine(String, Object[])

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

WriteLine(String, String)

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

WriteLine(String)

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

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Object)

Escreve o valor do método do ToString() objeto para os ouvintes de traços na Listeners coleção se uma condição for true.

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, String)

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

Aplica-se a

Segurança de Thread

Este tipo é seguro para fios.

Ver também