Debug Classe

Définition

Fournit un ensemble de méthodes et propriétés qui permettent de déboguer votre code.

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
Héritage
Debug

Exemples

L’exemple suivant utilise Debug pour indiquer le début et la fin de l’exécution d’un programme. L’exemple utilise Indent également et Unindent distingue la sortie de suivi.

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

Remarques

Pour rendre votre code plus robuste sans affecter les performances et la taille de code de votre produit d’expédition, utilisez des méthodes dans la Debug classe pour imprimer des informations de débogage et vérifier votre logique avec des assertions.

Cette classe fournit des méthodes pour afficher une Assert boîte de dialogue et émettre une assertion qui échouera toujours. Cette classe fournit des méthodes d’écriture dans les variantes suivantes :

Les classes et TraceSwitch les BooleanSwitch classes fournissent des moyens de contrôler dynamiquement la sortie de suivi. Pour les applications .NET Framework, vous pouvez modifier les valeurs de ces commutateurs sans recompiler votre application. Pour plus d’informations sur l’utilisation du fichier de configuration pour définir un commutateur dans les applications .NET Framework, consultez la Switch classe et l’article Commutateurs de trace .

Vous pouvez personnaliser la cible de la sortie de suivi en ajoutant TraceListener ou en supprimant des instances de la Listeners collection. La Listeners collection est partagée par les classes et par les Debug Trace classes ; l’ajout d’un écouteur de trace à l’une ou l’autre classe ajoute l’écouteur aux deux. Par défaut, la DefaultTraceListener classe émet une sortie de trace.

Notes

L’ajout d’un écouteur de trace à la Listeners collection peut entraîner la levée d’une exception lors du suivi, si une ressource utilisée par l’écouteur de trace n’est pas disponible. Les conditions et l’exception levée dépendent de l’écouteur de trace et ne peuvent pas être énumérées dans cet article. Il peut être utile de placer des appels aux méthodes dans try/catch des Debug blocs pour détecter et gérer les exceptions des écouteurs de trace.

Vous pouvez modifier le niveau de retrait à l’aide de la Indent méthode ou de la IndentLevel propriété. Pour modifier l’espacement du retrait, utilisez la IndentSize propriété. Vous pouvez spécifier s’il faut vider automatiquement la mémoire tampon de sortie après chaque écriture en définissant la propriété truesur AutoFlush .

Pour les applications .NET Framework, vous pouvez définir et modifier le AutoFlush IndentSize Debug fichier de configuration de votre application. Le fichier de configuration doit être mis en forme comme indiqué dans l’exemple suivant.

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

L’attribut ConditionalAttribute est appliqué aux méthodes de Debug. Les compilateurs qui prennent en charge ConditionalAttribute l’ignorer les appels à ces méthodes, sauf s’il DEBUG est défini comme symbole de compilation conditionnelle. Reportez-vous à la documentation d’un compilateur pour déterminer si ConditionalAttribute elle est prise en charge et la syntaxe permettant de définir un symbole de compilation conditionnelle.

Notes

Dans Visual Studio projets C# et Visual Basic, par défaut, le DEBUG symbole de compilation conditionnelle est défini pour les builds de débogage, et le TRACE symbole est défini pour les builds de débogage et de mise en production. Pour plus d’informations sur le débogage conditionnel dans Visual C++, consultez la classe Debug (C++/CLI).

Pour définir le DEBUG symbole de compilation conditionnelle en C#, ajoutez l’option /d:DEBUG à la ligne de commande du compilateur lorsque vous compilez votre code à l’aide d’une ligne de commande ou ajoutez-le #define DEBUG au début de votre fichier. Dans Visual Basic, ajoutez l’option /d:DEBUG=True à la ligne de commande du compilateur ou ajoutez-la #Const DEBUG=True au fichier.

Propriétés

AutoFlush

Obtient ou définit une valeur permettant de savoir si Flush() doit être appelé sur les Listeners après chaque écriture.

IndentLevel

Obtient ou définit le niveau de retrait.

IndentSize

Obtient ou définit le nombre d'espaces dans un retrait.

Listeners

Obtient la collection des écouteurs qui surveillent la sortie de débogage.

Méthodes

Assert(Boolean)

Vérifie une condition ; si la condition est false, affiche une boîte de message qui montre la pile des appels.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Vérifie une condition ; si la condition a la valeur false, affiche un message spécifié et une boîte de message qui montre la pile des appels.

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

Vérifie une condition ; si la condition a la valeur false, affiche un message spécifié et une boîte de message qui montre la pile des appels.

Assert(Boolean, String)

Vérifie une condition ; si la condition a la valeur false, affiche un message spécifié et une boîte de message qui montre la pile des appels.

Assert(Boolean, String, String)

Vérifie une condition ; si la condition est false, affiche deux messages spécifiés et une boîte de message qui montre la pile des appels.

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

Vérifie une condition ; si la condition est false, affiche deux messages (simples et mis en forme) et une boîte de message qui mentionne la pile des appels.

Close()

Vide la mémoire tampon de sortie, puis appelle la méthode Close sur chaque Listeners.

Fail(String)

Émet le message d’erreur spécifié.

Fail(String, String)

Envoie un message d'erreur ainsi qu'un message d'erreur détaillé.

Flush()

Vide la mémoire tampon de sortie et entraîne l’écriture des données mises en mémoire tampon dans la collection Listeners.

Indent()

Augmente le IndentLevel actuel d’une unité.

Print(String)

Écrit un message suivi d'un terminateur de ligne sur les écouteurs de trace de la collection Listeners.

Print(String, Object[])

Écrit une chaîne mise en forme, suivie d'un terminateur de ligne sur les écouteurs de trace de la collection Listeners.

Unindent()

Réduit la propriété IndentLevel actuelle d’une unité.

Write(Object)

Écrit la valeur de la méthode ToString() de l’objet dans les écouteurs de suivi de la collection Listeners.

Write(Object, String)

Écrit le nom de la catégorie et la valeur de la méthode ToString() de l’objet dans les écouteurs de suivi de la collection Listeners.

Write(String)

Écrit un message dans les écouteurs de suivi de la collection Listeners.

Write(String, String)

Écrit un nom de catégorie et un message dans les écouteurs de suivi de la collection Listeners.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Si condition c’est truele cas, écrit un nom de catégorie et un message dans les écouteurs de trace dans la Listeners collection.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Écrit un nom de catégorie et un message dans les écouteurs de trace dans la Listeners collection si une condition spécifiée est true.

WriteIf(Boolean, Object)

Écrit la valeur de la méthode ToString() de l’objet dans les écouteurs de la trace de la collection Listeners si une condition est true.

WriteIf(Boolean, Object, String)

Écrit un nom de catégorie et la valeur de la méthode ToString() de l’objet dans les écouteurs de suivi de la collection Listeners, si une condition a la valeur true.

WriteIf(Boolean, String)

Écrit un message dans les écouteurs de suivi de la collection Listeners si une condition est true.

WriteIf(Boolean, String, String)

Écrit un nom de catégorie et un message dans les écouteurs de la trace de la collection Listeners si une condition est true.

WriteLine(Object)

Écrit la valeur de la méthode ToString() de l’objet dans les écouteurs de suivi de la collection Listeners.

WriteLine(Object, String)

Écrit le nom de la catégorie et la valeur de la méthode ToString() de l’objet dans les écouteurs de suivi de la collection Listeners.

WriteLine(String)

Écrit un message suivi d'un terminateur de ligne sur les écouteurs de trace de la collection Listeners.

WriteLine(String, Object[])

Écrit un message mis en forme suivi d'un terminateur de ligne dans les écouteurs de la trace de la collection Listeners.

WriteLine(String, String)

Écrit un nom de catégorie et un message dans les écouteurs de suivi de la collection Listeners.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Écrit un message dans les écouteurs de trace dans la Listeners collection si une condition spécifiée est true.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Écrit un nom de catégorie et un message dans les écouteurs de trace dans la Listeners collection si une condition spécifiée est true.

WriteLineIf(Boolean, Object)

Écrit la valeur de la méthode ToString() de l’objet dans les écouteurs de la trace de la collection Listeners si une condition est true.

WriteLineIf(Boolean, Object, String)

Écrit un nom de catégorie et la valeur de la méthode ToString() de l’objet dans les écouteurs de suivi de la collection Listeners, si une condition a la valeur true.

WriteLineIf(Boolean, String)

Écrit un message dans les écouteurs de suivi de la collection Listeners si une condition est true.

WriteLineIf(Boolean, String, String)

Écrit un nom de catégorie et un message dans les écouteurs de la trace de la collection Listeners si une condition est true.

S’applique à

Cohérence de thread

Ce type est thread-safe.

Voir aussi