Debug Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 pour distinguer 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 du code de votre produit d’expédition, utilisez les méthodes de la Debug classe pour imprimer les informations de débogage et case activée 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 BooleanSwitch classes et TraceSwitch 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 Debug classes et ; l’ajout Trace d’un écouteur de trace à l’une ou l’autre classe ajoute l’écouteur aux deux. Par défaut, la classe émet une DefaultTraceListener sortie de trace.
Notes
L’ajout d’un écouteur de trace à la collection peut entraîner la Listeners 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 affectant à la propriété la AutoFlush valeur true
.
Pour les applications .NET Framework, vous pouvez définir et pour Debug en modifiant le AutoFlushIndentSize 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 les appels à ces méthodes, sauf si DEBUG
est défini comme symbole de compilation conditionnelle. Reportez-vous à la documentation d’un compilateur pour déterminer si ConditionalAttribute est pris en charge et la syntaxe pour définir un symbole de compilation conditionnelle.
Notes
Dans les projets Visual Studio 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 release. Pour plus d’informations sur le débogage conditionnel dans Visual C++, consultez 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 #define DEBUG
en haut de votre fichier. En Visual Basic, ajoutez l’option /d:DEBUG=True
à la ligne de commande du compilateur ou ajoutez #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 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Vérifie une condition ; si la condition a la valeur |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Vérifie une condition ; si la condition a la valeur |
Assert(Boolean, String) |
Vérifie une condition ; si la condition a la valeur |
Assert(Boolean, String, String) |
Vérifie une condition ; si la condition est |
Assert(Boolean, String, String, Object[]) |
Vérifie une condition ; si la condition est |
Close() |
Vide la mémoire tampon de sortie, puis appelle la méthode |
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 |
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 |
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 |
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 |
WriteIf(Boolean, String) |
Écrit un message dans les écouteurs de suivi de la collection Listeners si une condition est |
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 |
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 |
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 |
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 |
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 |
WriteLineIf(Boolean, String) |
Écrit un message dans les écouteurs de suivi de la collection Listeners si une condition est |
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 |
S’applique à
Cohérence de thread
Ce type est thread-safe.