No momento, estou tentando executar / depurar meu aplicativo no Visual Studio, mas ele não pode criá-lo porque a última instância do app.vshost.exe
ainda está em execução. Então, usando o Gerenciador de Tarefas, estou tentando matá-lo, mas ele permanece lá sem nenhum sinal de atividade.
Além desse caso específico (talvez um bug do Visual Studio), estou muito curioso sobre os motivos técnicos pelos quais, às vezes, o Windows não pode matar um processo?
Pode, um desenvolvedor esclarecido relacionado ao SO, tente explicar?
(E por favor, não inicie uma batalha Unix / Linux / Mac contra o Windows.)
windows
process
visual-studio
kill
Néstor Sánchez A.
fonte
fonte
Respostas:
A causa geralmente é um driver que não responde e que solicitações de E / S inacabadas estão em andamento.
Veja a entrada no blog de Mark Russinovich Processos Inomináveis ( arquivo )
fonte
Um motivo possível: você não pode matar uma tarefa anexada a um depurador.
A única maneira de interromper a tarefa é pelo próprio depurador.
fonte
taskkill /f
, nem comwmic ... call terminate
... continua dizendo "erro: o processo X com o pid Y não pôde ser encerrado Não há instância em execução desta tarefa. "Uma razão seria que você não tem permissão para matá-lo. Por exemplo, se o processo estiver sendo executado como administrador e você for um usuário normal.
fonte
Abra a página Propriedades do projeto, vá para a guia Debug e marque "Ativar depuração de código não gerenciado". Ou desmarque a opção para usar o processo host.
fonte
Se o último app.vshost.exe ainda estiver em execução, conecte-se a esse processo com o depurador.
Deve ser encontrado no menu em Debug-> AttachToProcess, em seguida, escolha o processo suspenso e conecte-se a ele.
fonte
Minha única experiência de desenvolvimento no nível do sistema operacional foi na pós-graduação, mas suspeito que o que está acontecendo é isso (ou algo semelhante):
Ocorreu um erro ao executar a última instância que o depurador tentou manipular, mas algum outro problema causou a falha (talvez uma afirmação de depuração tenha sido encontrada, mas antes que você pudesse clicar na caixa de diálogo para Abortar / Repetir / Ignorar, outra interrupção foi acionada , talvez devido a um ponteiro nulo). O resultado, depois que você parou de depurar, foi que o depurador ainda estava aguardando sua resposta à primeira asserção de depuração, para que não deixasse o processo terminar. Mas o depurador foi encerrado quando você parou de depurar (ou fez isso?), Transformando o processo em um zumbi ou sua árvore em zumbis. Quando você tentou interromper o processo de zumbi, ocorreu um erro semelhante ao ocorrido, mas o gerenciador de tarefas não falou sobre isso:
Se você decidir tentar a mesma coisa no pai (no meu caso, o pai foi o processo do depurador, msvsmon.exe), ele falhará da mesma maneira:
O pai foi iniciado pelo IDE, mas o IDE cortou o cordão umbilical, então agora você tem dois processos zumbis. Você não pode anexar um depurador ao processo que estava depurando, porque já existe um depurador (zumbi) conectado e não é possível anexar um depurador ao depurador (zumbi) porque, como o Visual Studio informará quando você tentar :
Os zumbis ainda estão na tabela de processos suficientemente bem para impedir que você execute outra instância através do depurador, mas você provavelmente poderia iniciar outra instância fora do IDE.
Isso aborda a questão mais específica de fazer com que o VS crie um processo de zumbi. Mas, processos de zumbis geralmente não morrem. Bem, geralmente no Windows, às vezes no Linux, não até você atirar neles com uma espingarda. Ou foi um desligamento? Mas cuidado com o aplicativo acidental de atualizações pendentes do Windows.
Fiquei empolgado com algumas das respostas anteriores que sugeriam anexar ao depurador, mas o resultado acima foi o que obtive. Então, estou enviando minha resposta e reiniciando para limpar a tabela de processos.
fonte
Talvez um exame de algumas das ferramentas citadas aqui possa levar a respostas?
https://stackoverflow.com/questions/49988/really-killing-a-process-in-windows
(Acabei de descobrir que o pskill era a única das várias ferramentas que poderiam matar um processo em execução na sessão do Windows 7 de um usuário, a partir da sessão de outro usuário (ou credenciais, suponho).
fonte
Você pode!
Usando ProcessHacker (clique com o botão direito do mouse no processo) -> Terminator.
fonte
Se você estiver usando o VS para depurar o processo e o matar com o gerenciador de tarefas, o VS não poderá lidar bem com isso.
Portanto, o VS ainda está depurando o processo de destino, mas você não pode simplesmente pressionar o processo de parada no VS. Basta encerrar o VS e você verá o processo sair.
fonte