Le programme C # suivant (construit avec csc hello.cs
) imprime seulement Hello via Console!
sur la console et Hello via OutputDebugString
dans la fenêtre DebugView. Cependant, je ne peux voir aucun des System.Diagnostics.*
appels. Pourquoi donc?
using System;
using System.Runtime.InteropServices;
class Hello {
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
public static extern void OutputDebugString(string message);
static void Main() {
Console.Write( "Hello via Console!" );
System.Diagnostics.Debug.Write( "Hello via Debug!" );
System.Diagnostics.Trace.Write( "Hello via Trace!" );
OutputDebugString( "Hello via OutputDebugString" );
}
}
Existe-t-il des commutateurs spéciaux de ligne de commande nécessaires pour csc
?
Je n'utilise Visual Studio pour aucun de mes développements, il s'agit uniquement de commandes en ligne de commande.
Comme d'autres l'ont fait remarquer, les auditeurs doivent être enregistrés pour pouvoir lire ces flux. Notez également que Debug.Write
ne fonctionnera que si l’indicateur DEBUG
build est défini, alors que Trace.Write
_ ne fonctionnera que si l’indicateur TRACE
build est défini.
La définition des indicateurs DEBUG
et/ou TRACE
s'effectue facilement dans les propriétés du projet dans Visual Studio ou en fournissant les arguments suivants à csc.exe.
/define:DEBUG;TRACE
Pendant le débogage System.Diagnostics.Debug.WriteLine
apparaîtra dans la fenêtre de sortie (Ctrl+Alt+O), vous pouvez aussi ajouter un TraceListener
au Debug.Listeners
collection pour spécifier Debug.WriteLine
appels pour émettre dans une autre destination.
Remarque: Debug.WriteLine
les appels peuvent ne pas s'afficher dans la fenêtre de sortie si l'option "Rediriger tout le texte de la fenêtre de sortie vers la fenêtre Immédiate" de Visual Studio est cochée dans le menu Outils → Options → Débogage → Général. Pour afficher "Outils → Options → Débogage", cochez la case en regard de "Outils --- Options → Afficher tous les paramètres ".
Vous devez ajouter un TraceListener
pour les voir apparaître sur la console.
TextWriterTraceListener writer = new TextWriterTraceListener(System.Console.Out);
Debug.Listeners.Add(writer);
Ils apparaissent également dans la fenêtre de sortie de Visual Studio en mode débogage.
Pendant le débogage dans Visual Studio, affichez la fenêtre "Sortie" (Affichage-> Sortie). Il montrera là.
Les messages de diagnostic sont affichés dans le Output Window
alt text http://weblogs.asp.net/blogs/romannikitin/WindowsLiveWriter/Sys.DebuginAsp.NetAjaxFramework_3E7D/VS_debug_console_2.png =
Quand j'écris debug.write ("") dans le code, il sort dans la "fenêtre immédiate", pas "fenêtre de sortie".
Tu peux l'essayer. Pour afficher la fenêtre "Immediate" (Debug → Window → Immediate).
La solution à mon cas est la suivante:
Pour VB.NET, ce qui suit s’applique. Vous devez sélectionner "Debug" ET assurez-vous que vous "Démarrer le débogage". Ceci peut être atteint en appuyant sur F5.
De plus, Console.WriteLine n’affichera que les messages lors de la création en tant que "Release" dans votre fenêtre de sortie.
Comme mentionné précédemment, ouvrez la fenêtre de sortie avec View → Output ET assurez-vous de sélectionner "Construire" si vous souhaitez voir les messages Console.WriteLine ou "Déboguer" si vous le souhaitez. veux voir les messages Debug.WriteLine ou Trace.WriteLine.