Debug Debug Debug Debug Class

Definição

Fornece um conjunto de métodos e propriedades que ajudam a depurar seu código.Provides a set of methods and properties that help debug your code.

public ref class Debug abstract sealed
public static class Debug
type Debug = class
Public Class Debug
Herança
DebugDebugDebugDebug

Exemplos

O exemplo a seguir Debug usa para indicar o início e o fim da execução de um programa.The following example uses Debug to indicate the beginning and end of a program's execution. O exemplo também usa Indent e Unindent para distinguir a saída de rastreamento.The example also uses Indent and Unindent to distinguish the tracing output.

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

Se você usar métodos na Debug classe para imprimir informações de depuração e verificar sua lógica com asserções, poderá tornar seu código mais robusto sem afetar o desempenho e o tamanho do código de seu produto de remessa.If you use methods in the Debug class to print debugging information and check your logic with assertions, you can make your code more robust without impacting the performance and code size of your shipping product.

Essa classe fornece métodos para exibir uma Assert caixa de diálogo e emitir uma asserção que sempre falhará.This class provides methods to display an Assert dialog box, and to emit an assertion that will always fail. Essa classe fornece métodos de gravação nas seguintes variações: Write WriteIf , WriteLinee WriteLineIf.This class provides write methods in the following variations: Write, WriteLine, WriteIf and WriteLineIf.

As BooleanSwitch classes TraceSwitch e fornecem meios para controlar dinamicamente a saída de rastreamento.The BooleanSwitch and TraceSwitch classes provide means to dynamically control the tracing output. Você pode modificar os valores dessas opções sem recompilar seu aplicativo.You can modify the values of these switches without recompiling your application. Para obter informações sobre como usar o arquivo de configuração para definir uma opção Switch , consulte a classe e o tópico Opções de rastreamento .For information on using the configuration file to set a switch, see the Switch class and the Trace Switches topic.

Você pode personalizar o destino da saída de rastreamento adicionando TraceListener instâncias ou removendo instâncias Listeners da coleção.You can customize the tracing output's target by adding TraceListener instances to or removing instances from the Listeners collection. A Listeners coleção é compartilhada Debug tanto pelo quanto Trace pelas classes; a adição de um ouvinte de rastreamento a qualquer classe adiciona o ouvinte a ambos.The Listeners collection is shared by both the Debug and the Trace classes; adding a trace listener to either class adds the listener to both. Por padrão, a DefaultTraceListener classe emite a saída de rastreamento.By default, the DefaultTraceListener class emits trace output.

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.Adding a trace listener to the Listeners collection can cause an exception to be thrown while tracing, if a resource used by the trace listener is not available. As condições e a exceção geradas dependem do ouvinte de rastreamento e não podem ser enumeradas neste tópico.The conditions and the exception thrown depend on the trace listener and cannot be enumerated in this topic. Pode ser útil fazer Debug chamadas para os métodos em try / catch blocos para detectar e tratar quaisquer exceções de ouvintes de rastreamento.It may be useful to place calls to the Debug methods in try/catch blocks to detect and handle any exceptions from trace listeners.

Você pode modificar o nível de recuo usando o Indent método ou a IndentLevel propriedade.You can modify the level of indentation using the Indent method or the IndentLevel property. Para modificar o espaçamento de recuo, IndentSize use a propriedade.To modify the indent spacing, use the IndentSize property. Você pode especificar se deseja liberar automaticamente o buffer de saída após cada gravação definindo a AutoFlush Propriedade como true.You can specify whether to automatically flush the output buffer after each write by setting the AutoFlush property to true.

Para definir AutoFlush and IndentSize para Debug, você pode editar o arquivo de configuração correspondente ao nome do seu aplicativo.To set the AutoFlush and IndentSize for Debug, you can edit the configuration file corresponding to the name of your application. O arquivo de configuração deve ser formatado conforme mostrado no exemplo a seguir.The configuration file should be formatted as shown in the following example.

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

O ConditionalAttribute atributo é aplicado aos métodos de Debug.The ConditionalAttribute attribute is applied to the methods of Debug. Compiladores que oferecem ConditionalAttribute suporte a ignorar chamadas para esses métodos, a menos que "debug" seja definido como um símbolo de compilação condicional.Compilers that support ConditionalAttribute ignore calls to these methods unless "DEBUG" is defined as a conditional compilation symbol. Consulte a documentação de um compilador para determinar se ConditionalAttribute o tem suporte e a sintaxe para definir um símbolo de compilação condicional.Refer to a compiler's documentation to determine whether ConditionalAttribute is supported and the syntax for defining a conditional compilation symbol.

Observação

No Visual Studio C# e Visual Basic projetos, por padrão, o símbolo de compilação condicional "debug" é definido para compilações de depuração e o símbolo de "Trace" é definido para compilações de depuração e de versão.In Visual Studio C# and Visual Basic projects, by default, the "DEBUG" conditional compilation symbol is defined for debug builds, and the "TRACE" symbol is defined for both debug and release builds. Para obter informações sobre como desabilitar esse comportamento, consulte a documentação do Visual Studio.For information about how to disable this behavior, see the Visual Studio documentation. Para obter informações sobre a depuração condicional C++no Visual, consulte depurarC++classe (/CLI).For information about conditional debugging in Visual C++, see Debug Class (C++/CLI).

Para definir o símbolo de compilação condicional "debug" C#no, adicione /d:DEBUG a opção à linha de comando do compilador ao compilar seu código usando uma linha de comando ou #define DEBUG adicione-o à parte superior do seu arquivo.To define the "DEBUG" conditional compilation symbol in C#, add the /d:DEBUG option to the compiler command line when you compile your code using a command line, or add #define DEBUG to the top of your file. Em Visual Basic, adicione a /d:DEBUG=True opção à linha de comando do compilador ou #Const DEBUG=True adicione ao arquivo.In Visual Basic, add the /d:DEBUG=True option to the compiler command line or add #Const DEBUG=True to the file.

Propriedades

AutoFlush AutoFlush AutoFlush AutoFlush

Obtém ou define um valor que indica se Flush() deve ser chamado no Listeners após cada gravação.Gets or sets a value indicating whether Flush() should be called on the Listeners after every write.

IndentLevel IndentLevel IndentLevel IndentLevel

Obtém ou define o nível de recuo.Gets or sets the indent level.

IndentSize IndentSize IndentSize IndentSize

Obtém ou define o número de espaços em um recuo.Gets or sets the number of spaces in an indent.

Listeners Listeners Listeners Listeners

Obtém a coleção de ouvintes que está monitorando a saída de depuração.Gets the collection of listeners that is monitoring the debug output.

Métodos

Assert(Boolean) Assert(Boolean) Assert(Boolean) Assert(Boolean)

Verifica uma condição; se a condição for false, exibirá uma caixa de mensagem que mostra a pilha de chamadas.Checks for a condition; if the condition is false, displays a message box that shows the call stack.

Assert(Boolean, String) Assert(Boolean, String) Assert(Boolean, String) 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.Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack.

Assert(Boolean, String, String) Assert(Boolean, String, String) Assert(Boolean, String, String) 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.Checks for a condition; if the condition is false, outputs two specified messages and displays a message box that shows the call stack.

Assert(Boolean, String, String, Object[]) Assert(Boolean, String, String, Object[]) Assert(Boolean, String, String, Object[]) 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.Checks for a condition; if the condition is false, outputs two messages (simple and formatted) and displays a message box that shows the call stack.

Close() Close() Close() Close()

Libera o buffer de saída e, em seguida, chama o método Close em cada um dos Listeners.Flushes the output buffer and then calls the Close method on each of the Listeners.

Fail(String) Fail(String) Fail(String) Fail(String)

Emite a mensagem de erro especificada.Emits the specified error message.

Fail(String, String) Fail(String, String) Fail(String, String) Fail(String, String)

Emite uma mensagem de erro e uma mensagem de erro detalhada.Emits an error message and a detailed error message.

Flush() Flush() Flush() Flush()

Libera o buffer de saída e faz com que os dados armazenados em buffer sejam gravados na coleção de Listeners.Flushes the output buffer and causes buffered data to write to the Listeners collection.

Indent() Indent() Indent() Indent()

Aumenta o IndentLevel atual em um.Increases the current IndentLevel by one.

Print(String) Print(String) Print(String) Print(String)

Grava uma mensagem seguida de um terminador de linha para os ouvintes de rastreamento na coleção Listeners.Writes a message followed by a line terminator to the trace listeners in the Listeners collection.

Print(String, Object[]) Print(String, Object[]) Print(String, Object[]) Print(String, Object[])

Grava uma cadeia de caracteres formatada seguida de um terminador de linha para os ouvintes de rastreamento na coleção Listeners.Writes a formatted string followed by a line terminator to the trace listeners in the Listeners collection.

Unindent() Unindent() Unindent() Unindent()

Diminui o IndentLevel atual em um.Decreases the current IndentLevel by one.

Write(String, String) Write(String, String) Write(String, String) Write(String, String)

Grava um nome de categoria e mensagem nos ouvintes de rastreamento da coleção Listeners.Writes a category name and message to the trace listeners in the Listeners collection.

Write(Object, String) Write(Object, String) Write(Object, String) 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.Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection.

Write(Object) Write(Object) Write(Object) Write(Object)

Grava o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners.Writes the value of the object's ToString() method to the trace listeners in the Listeners collection.

Write(String) Write(String) Write(String) Write(String)

Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners.Writes a message to the trace listeners in the Listeners collection.

WriteIf(Boolean, Object) WriteIf(Boolean, Object) WriteIf(Boolean, Object) 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.Writes the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteIf(Boolean, String) WriteIf(Boolean, String) WriteIf(Boolean, String) WriteIf(Boolean, String)

Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners se uma condição for true.Writes a message to the trace listeners in the Listeners collection if a condition is true.

WriteIf(Boolean, Object, String) WriteIf(Boolean, Object, String) WriteIf(Boolean, Object, String) 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.Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteIf(Boolean, String, String) WriteIf(Boolean, String, String) WriteIf(Boolean, String, String) 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.Writes a category name and message to the trace listeners in the Listeners collection if a condition is true.

WriteLine(Object) WriteLine(Object) WriteLine(Object) WriteLine(Object)

Grava o valor do método ToString() do objeto nos ouvintes de rastreamento da coleção Listeners.Writes the value of the object's ToString() method to the trace listeners in the Listeners collection.

WriteLine(String) WriteLine(String) WriteLine(String) WriteLine(String)

Grava uma mensagem seguida de um terminador de linha para os ouvintes de rastreamento na coleção Listeners.Writes a message followed by a line terminator to the trace listeners in the Listeners collection.

WriteLine(Object, String) WriteLine(Object, String) WriteLine(Object, String) 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.Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection.

WriteLine(String, Object[]) WriteLine(String, Object[]) WriteLine(String, Object[]) WriteLine(String, Object[])

Grava uma mensagem formatada seguida de um terminador de linha para os ouvintes de rastreamento na coleção Listeners.Writes a formatted message followed by a line terminator to the trace listeners in the Listeners collection.

WriteLine(String, String) WriteLine(String, String) WriteLine(String, String) WriteLine(String, String)

Grava um nome de categoria e mensagem nos ouvintes de rastreamento da coleção Listeners.Writes a category name and message to the trace listeners in the Listeners collection.

WriteLineIf(Boolean, Object, String) WriteLineIf(Boolean, Object, String) WriteLineIf(Boolean, Object, String) 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.Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteLineIf(Boolean, Object) WriteLineIf(Boolean, Object) WriteLineIf(Boolean, Object) 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.Writes the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteLineIf(Boolean, String) WriteLineIf(Boolean, String) WriteLineIf(Boolean, String) WriteLineIf(Boolean, String)

Grava uma mensagem para os ouvintes de rastreamento na coleção Listeners se uma condição for true.Writes a message to the trace listeners in the Listeners collection if a condition is true.

WriteLineIf(Boolean, String, String) WriteLineIf(Boolean, String, String) WriteLineIf(Boolean, String, String) 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.Writes a category name and message to the trace listeners in the Listeners collection if a condition is true.

Aplica-se a

Acesso thread-safe

Este tipo é thread-safe.This type is thread safe.

Veja também