Невозможно завершить процесс в отладчике
Столкнулся с такой проблемой, программа, запущенная в отладчике не может завершиться, отладчику шлется сигнал, мол Process terminated (и отладчик с чистой совестью завершает процесс отладки), но процесс как таковой не убивается, он остается жить(!) у него остается живым главный поток, при этом его нельзя убить, не убив отладчик.
При чем, если перед завершением процесса сделать Detach from program, то, О ЧУДО, процесс завершается корректно.
Предполагаю, что после завершения процесса какая-то библа работающая с COM объектами анализирует в отладке ли мы и вызывает прерывание отладчика, которое уже ничем не обрабатывается и процесс остается в таком полумертвом состоянии.
Подобное наблюдалось при ручной выгрузке COM объекта, по коду явно вызывался IsDebuggerPresent, а за ним и Int 3, все это зло делала библа нэт фреймворка.
Windows7 X64. Появилось после установки доп. модулей работающих через COM объекты (но в отлаживаемых программах COM объекты вообще никак не трогаются).
|