Utilisation de la console personnalisée pour Visual Studio Console de Débogage de l'Application
Est-il possible de Visual Studio pour utiliser un non-standard de la console lors du débogage d'une Application Console?
Je ne suis pas sûr de ce que la console par défaut est, ça ressemble à de la cmd.exe
. J'aimerais vraiment que ma Console Application de s'exécuter dans ConEmu quand je debug.
Pour être clair, je veux cliquez sur "Démarrer le Débogage", et le processus devrait se passer exactement comme d'habitude, mais au lieu de mettre en place un cmd.exe
de la console, il devrait apporter un ConEmu console (ou autre).
Je suis en utilisant Visual Studio 2010 Pro
Étroitement lié à cette fin (sans réponse) question: Utilisation Console2 pour le débogage Visual Studio?
- Similaire Q sur super-Utilisateur superuser.com/q/445394/139371
- Les méthodes indiqué dans la réponse ci-dessous fonctionne bien, cependant, je souhaite que Visual Studio a un support intégré pour le choix d'un tiers Émulateur de Console pour l'affichage de la console de sortie de l'application. (Toujours pas sûr si je reçois ma terminologie ici, @Maximus! 🙂 )
- ouais, ConEmu...
Vous devez vous connecter pour publier un commentaire.
Vous avez mélange de termes. La "Console Windows" n'est pas un "cmd.exe" mais des "services" qui a mis en place, par exemple de Win7, avec "conhost.exe".
Lorsque vous démarrez tout application console (n'a pas d'importance cmd, powershell, ou votre propre application) le démarrage de windows dans un environnement particulier, qui peut avoir visible de la fenêtre de console. Mais il est toujours interne de la console Windows.
Mais! Les émulateurs de Console peut saisir cette fenêtre, masquer le réel de la console et de les afficher leurs propres émulé surface.
Par exemple, vous pouvez commencer à ConEmu avec des commutateurs spéciaux (décrit à la SU, lien en commentaire) et de son fait.
De terminal par défaut de remplacement
ConEmu dispose d'une fonctionnalité nommée
Default Terminal
. Si vous activez cette fonctionnalité, vous obtiendrez sans couture de démarrage de votre application à partir de Visual Studio dans le ConEmu terminal. L'idée est d'accrocher CreateProcess dans l'application source (explorer.exe
,vcexpress.exe
et ainsi de suite, encadrés par des|
dans les paramètres). Lire plus à propos de la fonction dans le projet wiki.Vous pouvez choisir d'utiliser l'existant, ConEmu instance ou d'exécuter une nouvelle fenêtre pour votre application. Et ConEmu peut montrer
Press Enter or Esc to close console...
message sur la console une fois votre application se ferme (laAlways
radio). Pas besoin d'ajouterreadline
à la fin de votre programme de plus pour voir le résultat.Modifiant le code de votre application
Parce que c'est votre propre programme, vous pouvez ajouter, par exemple, les lignes suivantes à la tête de votre
main
fonctionExemple C++
Exemple en C#
Attach To
option dans ConEmu fonctionne très bien, comme décrit dans le Superutilisateur lien de l'article vous avez dit sur mon post. Je n'ai pas été en mesure d'essayer de le pré-processeur de la directive que vous fournissez ici, depuis que je travaille en C# et je n'ai pas actuellement de savoir comment mettre en œuvre la directive que vous avez fourni pour le C# préprocesseur. Merci pour une excellente application!devenv.exe
lancemsvsmon.exe
qui lance mon application. L'ajout demsvsmon.exe
à la liste des accro exe qui fait que cela fonctionne pour moi.Quelques idées:
Tout simplement commencer votre programme de ConEmu directement, puis choisissez Attacher à traiter dans le menu Débogage dans Visual Studio. Vous pouvez ajouter un retard dans le début de votre programme pour vous donner le temps d'attacher. C'est une sorte de douleur si vous avez à faire cela, mais il est souvent utile pour ce type de situation.
Ajouter un
__debugbreak();
instruction au début de votre programme (peut-être à l'intérieur d'un#ifndef NDEBUG
bloc). Commencez votre programme de ConEmu directement. Utiliser le JIT fonctionnalité de Visual Studio pour vous connecter lors de l'interruption de débogage hits, et continuer de débogage à partir de là.