Le programme C # suivant (construit avec csc hello.cs
) s'imprime uniquement Hello via Console!
sur la console et Hello via OutputDebugString
dans la fenêtre DebugView. Cependant, je ne vois 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" );
}
}
Y a-t-il peut-être des commutateurs de ligne de commande spéciaux requis pour csc
?
Je n'utilise Visual Studio pour aucun de mes développements, c'est de la pure ligne de commande.
Réponses:
Comme d'autres l'ont souligné, les auditeurs doivent être enregistrés pour lire ces flux. Notez également que
Debug.Write
cela ne fonctionnera que si l'DEBUG
indicateur de construction est défini, tandis queTrace.Write
ne fonctionnera que si l'TRACE
indicateur de construction est défini.La définition des indicateurs
DEBUG
et / ouTRACE
se fait facilement dans les propriétés du projet dans Visual Studio ou en fournissant les arguments suivants à csc.exela source
Alors que le débogage
System.Diagnostics.Debug.WriteLine
s'affichera dans la fenêtre de sortie ( Ctrl+ Alt+ O), vous pouvez également ajouter unTraceListener
à laDebug.Listeners
collection pour spécifier desDebug.WriteLine
appels à la sortie dans d'autres emplacements.Remarque: les
Debug.WriteLine
appels peuvent ne pas s'afficher dans la fenêtre de sortie si vous avez l'option Visual Studio «Rediriger tout le texte de la fenêtre de sortie vers la fenêtre d'exécution» cochée dans le menu Outils → Options → Débogage → Général . Pour afficher « Outils → Options → Débogage », cochez la case à côté de « Outils → Options → Afficher tous les paramètres ».la source
Vous devez ajouter un
TraceListener
pour les voir apparaître sur la console.Ils apparaissent également dans la fenêtre Sortie de Visual Studio en mode débogage.
la source
OutputDebugString()
et (noyau)DbgPrint().
Debug.Write()
si ses paramètres de capture incluent "Global Win32" - ce qui nécessite de l'exécuter en mode Admin.Pendant que vous déboguez dans Visual Studio, affichez la fenêtre «Sortie» (Affichage-> Sortie). Cela montrera là.
la source
Les messages de diagnostic s'affichent dans la fenêtre de sortie.
la source
Lorsque j'écris debug.write ("") dans le code, il sort dans la "Fenêtre immédiate", pas dans la "Fenêtre de sortie".
Tu peux l'essayer. Pour afficher la fenêtre "Immédiat" ( Débogage → Fenêtre → Immédiat ).
la source
La solution pour mon cas est:
la source
Pour VB.NET, ce qui suit s'applique. Vous devez sélectionner "Déboguer" ET vous assurer que vous "Démarrer le débogage". Ceci peut être atteint en appuyant sur F5.
De plus, Console.WriteLine affichera uniquement les messages lors de la construction en tant que "Release" dans votre fenêtre de sortie.
Comme mentionné précédemment, ouvrez la fenêtre Sortie avec Affichage → Sortie ET assurez-vous de sélectionner soit "Construire" si vous voulez voir les messages Console.WriteLine ou "Debug" si vous voulez voir les messages Debug.WriteLine ou Trace.WriteLine.
la source