Debug Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 marcar 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 TraceSwitch fornecem meios para controlar dinamicamente a saída de rastreamento. Para aplicativos .NET Framework, você pode modificar os valores desses comutadores 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 Opções de Rastreamento.
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 , a adição de um ouvinte de rastreamento a qualquer classe adiciona o ouvinte a ambos. Por padrão, a classe emite a DefaultTraceListener 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 .NET Framework aplicativos, 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. Os 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 compilações de depuração e lançamento. Para obter informações sobre a depuração condicional no Visual C++, consulte Classe de depuração (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
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 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Verifica uma condição, se a condição for |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Verifica uma condição, se a condição for |
Assert(Boolean, String) |
Verifica uma condição, se a condição for |
Assert(Boolean, String, String) |
Verifica uma condição. Se a condição for |
Assert(Boolean, String, String, Object[]) |
Verifica uma condição, se a condição for |
Close() |
Libera o buffer de saída e, em seguida, chama o método |
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 |
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 |
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 |
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 |
WriteIf(Boolean, String) |
Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners se uma condição for |
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 |
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 |
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 |
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 |
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 |
WriteLineIf(Boolean, String) |
Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners se uma condição for |
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 |
Aplica-se a
Acesso thread-safe
Este tipo é thread-safe.