저의 OS 수준의 개발 경험은 대학원에 있었지만, 무슨 일이 일어나고 있는지 의심 스럽습니다.
디버거가 처리하려고 시도한 마지막 인스턴스를 실행하는 동안 오류가 발생했지만 다른 문제로 인해 오류가 발생했습니다 (디버거 어설 션이 발생했을 수 있지만 중단 / 다시 시도 / 무시) 대화 상자를 클릭하기 전에 다른 중단이 발생했습니다. , 아마도 널 포인터로 인해). 결과적으로 디버깅을 중단 한 후 디버거가 여전히 첫 번째 디버그 어설 션에 대한 응답을 기다리고 있었으므로 프로세스가 종료되지 않았습니다. 그러나 디버깅을 중단하거나 프로세스를 좀비로 바꾸거나 트리를 좀비로 바꾸면 디버거가 종료되었습니다. 좀비 프로세스를 종료하려고 할 때 이와 유사한 오류가 발생했지만 작업 관리자가 이에 대해 알려주지 않았습니다.
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.
부모 (같은 경우 부모는 디버거 프로세스 인 msvsmon.exe)에서 동일한 것을 시도하기로 결정하면 동일한 방식으로 실패합니다.
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.
부모는 IDE에 의해 시작되었지만 IDE는 탯줄을 잘라서 이제 두 가지 좀비 프로세스가 있습니다. 이미 (좀비) 디버거가 연결되어 있기 때문에 디버깅중인 프로세스에 디버거를 연결할 수 없으며 Visual Studio에서 시도 할 때 알려주므로 디버거를 (좀비) 디버거에 연결할 수 없습니다 :
프로세스에 첨부 할 수 없습니다. 현재 상태에서 작업이 합법적이지 않습니다.
좀비는 여전히 프로세스 테이블에있어 디버거를 통해 다른 인스턴스를 실행할 수는 없지만 IDE 외부에서 다른 인스턴스를 시작할 수 있습니다.
이것은 VS가 좀비 프로세스를 만드는 데 대한 더 구체적인 문제를 해결합니다. 그러나 좀비 프로세스는 종종 죽지 않습니다. 글쎄, 종종 Windows에서, 때로는 Linux에서 샷건으로 촬영할 때까지는 아닙니다. 아니면 셧다운입니까? 그러나 실수로 보류중인 Windows 업데이트가 적용되는 것을주의하십시오.
디버거와 연결을 제안한 이전 답변 중 일부에 흥분했지만 위의 결과는 내가 얻은 결과입니다. 그래서 프로세스 테이블을 정리하기 위해 답변을 제출하고 재부팅합니다.