J'essaie d'écrire un message dans la fenêtre de sortie à des fins de débogage. J'ai cherché une fonction comme Java system.out.println("")
. J'ai essayé Debug.Write
, Console.Write
et Trace.Write
. Il ne donne pas d'erreur, mais il n'imprime rien non plus.
Les options "Définir la constante DEBUG" et "Définir la constante TRACE" sont cochées.
Menu Outils → Options de → Debugging → « Rediriger tout le texte de la fenêtre de sortie à la fenêtre immédiate » n'est pas cochée.
Configuration: active (débogage)
Remarque: J'ai créé un projet avec l'assistant en tant que "Application Windows Forms" le cas échéant. Je ne sais pas où chercher.
c#
visual-studio-2010
visual-studio
debugging
previous_developer
la source
la source
Debug.WriteLine()
Réponses:
Ajoutez l'
System.Diagnostics
espace de noms, puis vous pouvez utiliserDebug.WriteLine()
pour imprimer rapidement un message dans la fenêtre de sortie de l'EDI. Pour plus de détails, veuillez vous référer à ceux-ci:la source
Cela écrira dans la fenêtre de sortie de débogage:
la source
Utilisation:
la source
est ce que vous recherchez.
Sinon, essayez de faire ceci:
Outils de menu → Options → Débogage → décochez Envoyer la sortie à l'immédiat .
la source
Tools|Options|Debugging uncheck Send Output to Immediate
Pour moi, seul l' espace de noms Trace et non celui de débogage fonctionnait:
Je travaille dans un projet C # sous Visual Studio 2010.
la source
Vous cherchez peut-être
ou
la source
MessageBox.Show()
peut être très ennuyeux lorsque vous souhaitez écrire plusieurs valeurs à des fins de débogage.MessageBox.Show
n'y écrit pas.L'appel
échoue lors de l'utilisation de .NET Core (V 1.0 ou 1.1).
Nous sommes censés créer et utiliser un enregistreur à partir de
Microsoft.Extensions.Logging
, mais ce journal apparaît uniquement dans la fenêtre de la console contextuelle dotnet.exe, pas dans la fenêtre de sortie de Visual Studio.la source
Cela nécessite un cadre tiers, à savoir Serilog , mais je l'ai néanmoins trouvé très expérience fluide pour obtenir la sortie à un endroit où je peux le voir.
Vous devez d'abord installer l' évier Trace de Serilog . Une fois installé, vous devez configurer l'enregistreur comme ceci:
(Vous pouvez définir un niveau minimum différent ou le définir sur une valeur de configuration ou sur l'une des fonctionnalités normales de Serilog. Vous pouvez également définir le paramètre
Trace
enregistreur sur un niveau spécifique pour remplacer les configurations, ou comme vous le souhaitez.)Ensuite, vous enregistrez simplement les messages normalement et ils apparaissent dans votre fenêtre de sortie:
Cela ne semble pas si grave, alors laissez-moi vous expliquer quelques avantages supplémentaires. Le plus important pour moi était que je pouvais simultanément me connecter à la fois à la fenêtre de sortie et à la console :
Cela m'a donné une grande flexibilité en termes de consommation de sortie, sans avoir à dupliquer tous mes appels
Console.Write
avecDebug.Write
. Lors de l'écriture du code, je pouvais exécuter mon outil de ligne de commande dans Visual Studio sans craindre de perdre ma sortie à sa sortie. Lorsque je l'avais déployé et que je devais déboguer quelque chose (et que Visual Studio n'était pas disponible), la sortie de la console était facilement disponible pour ma consommation. Les mêmes messages peuvent également être enregistrés dans un fichier (ou tout autre type de récepteur) lorsqu'il s'exécute en tant que tâche planifiée.L'essentiel est que l'utilisation de Serilog pour ce faire a vraiment facilité le vidage des messages vers une multitude de destinations, assurant que je pouvais toujours accéder facilement à la sortie, quelle que soit la façon dont je l'ai exécuté.
Il nécessite également une configuration et un code très minimes.
la source
Ce n'est pas une réponse à la question d'origine. Mais puisque j'ai trouvé cette question lors de la recherche d'un moyen de dumping interactif des données d'objet, j'ai pensé que d'autres pourraient bénéficier de mentionner cette alternative très utile.
J'ai finalement utilisé la fenêtre de commande et entré la
Debug.Print
commande, comme indiqué ci-dessous. Cela a imprimé un objet mémoire dans un format qui peut être copié sous forme de texte, ce qui est tout ce dont j'avais vraiment besoin.la source
Imprimer dans la fenêtre de sortie de Visual Studio:
la source
Les éléments suivants ont fonctionné pour moi dans Visual Studio 2015:
Lisez la documentation de OutputDebugStringW ici .
Notez que cette méthode ne fonctionne que si vous déboguez votre code (
debug mode
)la source
À des fins de débogage, la
System.Diagnostics.Debug.Writeline()
commande ne sera pas compilée dans la version finale de votre code, sauf si vous disposez d'écouteurs de débogage. Il écrit dans tous les écouteurs de trace, ce qui inclut la fenêtre de sortie VS lors de l'exécution en mode débogage.Pour une application console.
Console.Writeline()
fonctionnerait mais la sortie serait toujours générée dans la version finale de votre binaire.La sortie de débogage doit également apparaître dans la fenêtre de sortie normale lors du débogage des tests; tandis que la sortie console.writeline ne le fait pas (mais peut être trouvée dans la fenêtre de sortie de test.)
la source