3

Lorsque vous travaillez sur des applications console dans Visual Studio, je vais exécuter l'application en appuyant sur F5 pour l'amener en mode débogage. De temps en temps (et je ne suis pas sûr comment cela se produit), je reviendrai en "mode d'édition" dans Visual Studio et la fenêtre de la console déboguée sera toujours ouverte.Comment fermer une fenêtre de console "orpheline" qui a été ouverte depuis Visual Studio?

Il restera ouvert mais ne répondra pas. Je ne peux pas fermer la fenêtre en cliquant avec le bouton droit sur la fenêtre et en cliquant sur "fermer"; Je ne peux pas le fermer via le Gestionnaire des tâches, et je ne peux pas le fermer en mettant fin à un processus particulier (à ma connaissance). En fait, je ne peux même pas quitter Windows lorsque cela se produit sans appuyer physiquement sur le bouton d'alimentation pour redémarrer mon ordinateur.

Comment puis-je fermer la fenêtre sans avoir à redémarrer mon ordinateur?

Infos système: Windows XP SP3, Visual Studio 2010

EDIT: Il se produit généralement après que je romps en mode débogage. Toutes les exceptions sont mises en bulles et imprimées sur la console, donc ce n'est pas parce que l'exception provoque une interruption de l'application, mais parfois je parcours l'application jusqu'à ce que j'arrive à la partie de l'application prise, mais avant il est renvoyé à l'interface utilisateur.

+0

C'est probablement parce que votre application a généré une exception. Vérifiez si vous essayez d'accéder à la mémoire que vous n'êtes pas censé accéder ou peut-être une boucle infinie? –

+0

@Ran j'ai ajouté quelques informations supplémentaires qui devraient aider à clarifier. –

Répondre

4

J'ai eu presque le même problème, et a trouvé une autre solution, affichant alors voici dans le cas où il aide quelqu'un d'autre ...

Dans mon cas, je suis sous XP SP3 et VS 2005. Si j'arrête de déboguer l'application de console (parfois), la fenêtre de commande ne se fermera pas.

Le problème est que le processus s'est réellement arrêté, il n'apparaît tout simplement pas dans le gestionnaire de tâches, il n'y a donc aucun moyen de faire quoi que ce soit avec la fenêtre ou l'arrêt. La fenêtre reste sensible à la marque/copier/coller/défiler etc, mais c'est tout.

trouvé un correctif ici sur le support MS: http://support.microsoft.com/kb/982551

+0

merci beaucoup de l'avoir publié. Ce problème particulier a continué à m'agacer et je suis heureux de voir quelque chose qui pourrait m'aider. –

2

La première partie est normale, la fenêtre de la console ne peut pas répondre aux demandes de fermeture alors que le débogueur a le processus en mode pause.

Déboguer + Arrêter Le débogage doit terminer le programme. Il y a cependant un problème spécifique à XP et plus tôt, un processus ne peut pas se terminer si un thread du noyau exécute une requête d'E/S pour le processus. Vous pouvez voir cette condition à partir de Taskmgr.exe, onglet Processus. Afficher + Sélectionner les colonnes et cocher "Poignées". Vous avez un processus zombie lorsque vous le voyez afficher 1 handle en cours d'utilisation.

Vous ne savez pas exactement comment vous en sortez de cette condition, elle est plutôt spécifique à la demande d'E/S qui n'est pas terminée. Ayant abandonné XP il y a longtemps, je me souviens vaguement de tuer devenv.exe pour résoudre le problème. Windows 7 est sympa, recommandé.

+0

J'utilise Win 7 à la maison et j'adore ça.Espérons que ce problème se résoudra lorsque nous passerons à 7 à la fin de l'année. –

1

J'ai eu ce problème sur Windows XP dans le passé. Je l'ai eu dans la victoire 7 pour la première fois. Man c'est agaçant.

EDIT: Killing devenv.exe fonctionne pour moi. Est ennuyeux d'avoir à redémarrer sln.

Questions connexes