Ma seule expérience de développement au niveau du système d'exploitation était à l'école supérieure, mais je soupçonne que ce qui se passe est le suivant (ou quelque chose de similaire):
Une erreur s'est produite lors de l'exécution de la dernière instance que le débogueur a tenté de gérer, mais un autre problème a provoqué l'échec (peut-être qu'une assertion de débogage a été rencontrée, mais avant de pouvoir cliquer sur la boîte de dialogue pour abandonner / réessayer / ignorer, une autre interruption a été déclenchée , peut-être en raison d'un pointeur nul). Le résultat, après avoir arrêté le débogage, était que le débogueur attendait toujours votre réponse à la première assertion de débogage, de sorte qu'il ne laisserait pas le processus se terminer. Mais le débogueur s'est terminé lorsque vous avez arrêté le débogage (ou l'avez-vous fait?), Transformant le processus en zombie ou son arbre en zombies. Lorsque vous avez essayé de tuer le processus zombie, une erreur similaire à celle-ci s'est produite, mais le gestionnaire de tâches ne vous en a pas parlé:
C:\Windows\system32>taskkill /pid 9564 /f /t
ERROR: The process with PID 9564 (child process of PID 22520) could not be
terminated.
Reason: There is no running instance of the task.
Si vous décidez d'essayer la même chose sur le parent (dans mon cas, le parent était le processus de débogage, msvsmon.exe), cela échoue de la même manière:
C:\Windows\system32>taskkill /pid 22520 /f /t
ERROR: The process with PID 9564 (child process of PID 22520) could not be
terminated.
Reason: There is no running instance of the task.
ERROR: The process with PID 22520 (child process of PID 13964) could not be
terminated.
Reason: There is no running instance of the task.
Le parent a été lancé par l'IDE, mais l'IDE a coupé le cordon ombilical, vous avez donc maintenant deux processus zombies. Vous ne pouvez pas attacher un débogueur au processus que vous déboguez, car il y a déjà un débogueur (zombie) attaché, et vous ne pouvez pas attacher un débogueur au débogueur (zombie) parce que, comme Visual Studio vous le dira lorsque vous essayez :
Impossible de joindre le processus. Une opération n'est pas légale dans l'état actuel.
Les zombies sont toujours suffisamment bien dans la table de processus pour vous empêcher d'exécuter une autre instance via le débogueur, mais vous pourriez probablement démarrer une autre instance en dehors de l'EDI très bien.
Cela résout le problème plus spécifique de la création par VS d'un processus zombie. Mais, les processus zombies ne meurent souvent pas. Eh bien, souvent sous Windows, parfois sous Linux, pas avant de les tirer avec un fusil de chasse. Ou était-ce un arrêt? Mais méfiez-vous de l'application accidentelle des mises à jour Windows en attente.
J'ai été excité par certaines des réponses précédentes qui suggéraient de se joindre au débogueur, mais ce qui précède est le résultat que j'ai obtenu. Je soumets donc ma réponse et je redémarre pour nettoyer la table de processus.