D'où le Système.Diagnostics.Debug.Écrire la sortie apparaître?
La suite de programme C# (construit avec csc hello.cs
) imprime tout Hello via Console!
sur la console et Hello via OutputDebugString
dans la fenêtre DebugView. Cependant, je ne vois pas l'une des System.Diagnostics.*
appels. Pourquoi est-ce?
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" );
}
}
Est là peut-être que certains commutateurs de ligne de commande requis pour csc
?
Je ne suis pas à l'aide de Visual Studio pour un de mes développement, c'est de la pure ligne de commande trucs.
- comme mentionné dans un commentaire dans une autre réponse, pouvez utiliser Microsoft (SysInternals) DebugView: technet.microsoft.com/en-us/sysinternals/bb896647.aspx
Vous devez vous connecter pour publier un commentaire.
Comme d'autres l'ont souligné, les auditeurs doivent être enregistrés dans l'ordre de lecture de ces flux. Notez également que
Debug.Write
ne fonctionne que si leDEBUG
construire drapeau est réglé, tout enTrace.Write
ne fonctionne que si leTRACE
construire drapeau est réglé.Réglage de la
DEBUG
et/ouTRACE
drapeaux se fait facilement dans les propriétés du projet dans Visual Studio ou en fournissant les arguments suivants à l'csc.exePendant le débogage
System.Diagnostics.Debug.WriteLine
affichera dans la fenêtre de sortie (Ctrl+Alt+O), vous pouvez également ajouter unTraceListener
à laDebug.Listeners
collection de spécifierDebug.WriteLine
appels de sortie en d'autres endroits.Remarque:
Debug.WriteLine
appels peuvent ne pas s'afficher dans la fenêtre de sortie si vous avez Visual Studio option "Rediriger toutes les sorties de la Fenêtre de texte de la Fenêtre" est cochée dans le menu Outils → Options → de Débogage → Général. Pour afficher "Outils → Options → de Débogage", cochez la case à côté de "Outils → Options → Afficher Tous les Paramètres".Vous avez besoin d'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.
OutputDebugString()
et (noyau)DbgPrint().
Debug.Write()
si ses paramètres de Capture include "Global Win32", ce qui nécessite d'exécuter en mode Administrateur.Pendant que vous êtes débogage dans Visual Studio, affichage de la "Sortie" de la fenêtre (Affichage->Output). Il montrera là.
Les messages de Diagnostic sont affichés dans la
Output Window
le texte d'alt http://weblogs.asp.net/blogs/romannikitin/WindowsLiveWriter/Sys.DebuginAsp.NetAjaxFramework_3E7D/VS_debug_console_2.png
Quand j'écris de débogage.write("") dans le code, il les sorties dans la "fenêtre", pas "de la fenêtre de Sortie".
Vous pouvez l'essayer. Pour l'affichage de la "Immédiate" de la fenêtre (Debug → Fenêtre → Immédiate).
La solution pour mon cas est:
Pour VB.NET la règle suivante s'applique. Vous devez sélectionner "Debug" ET assurez-vous que vous "Démarrer le Débogage". Ceci peut être obtenu en appuyant sur F5.
Également la Console.WriteLine affiche uniquement les messages lors de la création comme "Libération" dans votre fenêtre de Sortie.
Comme mentionné précédemment, ouvrez la fenêtre de Sortie avec Vue → Sortie ET assurez-vous de sélectionner "Construire" si vous voulez voir de la Console.WriteLine messages ou "Debug" si vous voulez voir de Débogage.WriteLine ou de Trace.WriteLine messages.