Отлаженное окно программы не закроется

Я использую VS 2008 на 64-разрядной машине XP. Я отлаживаю 32-разрядный C++ DLL с помощью консольной программы. DLL и проекты EXE содержатся в том же SLN так, чтобы я мог изменить DLL, поскольку я тестирую.

То, что происходит, - то, что время от времени я закрываю программу с Отладкой | Отладка Остановки (Shift-F5). VS останавливает программу, но консоль остается открытой! Если я буду сидеть в точке останова и Shift-F5 хита, то это завершится правильно, но если программа выполняет полный наклон, когда я останавливаю его, я часто вижу это вместо этого.

Большая проблема состоит в том, что я не могу закрыть эти окна зомби. Используя Задачу Конца в Диспетчере задач ничего не делает (никакое сообщение, нет ничто). Когда я закрыл машину, это неспособно к должному к висячим строкам, и я должен обратиться к фактическому выключению питание.

Я думаю, что это подключено к наличию DLL и проекта EXE в том же SLN, что касается месяцев, я работал над этим проектом в 2 экземплярах VS, один для DLL и другого для EXE. Я постоянно переходил бы назад и вперед между окнами, когда я работал. Этой проблемы никогда не происходило, пока я не поместил эти два проекта в единственный SLN. Единственные работы SLN намного лучше, но эта аномалия является очень раздражающим.

Какие-либо идеи кто-либо?

ОБНОВЛЕНИЕ

После небольшого количества поиска (здесь), я нашел, что это, кажется, имеет отношение к одному из обновлений с прошлого вторника (KB977165 или KB978037). Спасибо Microsoft для Вашего превосходного предрелизного тестирования.

8
задан Marc Bernier 17 February 2010 в 16:24
поделиться

7 ответов

Это KB978037. Его удаление решает проблему.

Больше информации здесь

5
ответ дан 5 December 2019 в 22:18
поделиться

То же самое недавно начало происходить со мной. Я использую 32-битную Windows XP, VS 2008. Я не думаю, что это связано с тем, как организованы ваши проекты. Возможно, причиной этого был патч, установленный через Центр обновления Windows.

0
ответ дан 5 December 2019 в 22:18
поделиться

Я определенно видел странности, когда дескрипторы не освобождались, а диспетчер задач работал неправильно. Я обнаружил, что Process Explorer хорошо справляется с задачей и выясняет, что происходит с потерянными окнами, блокировками файлов и вообще странным поведением, которое происходит.

0
ответ дан 5 December 2019 в 22:18
поделиться

Окна консоли принадлежат csrss.exe, который является системным процессом и фактически единственным процессом, который вы не можете убить (по крайней мере, в XP вы можете убить другие системные процессы, если сделаете это в правильном порядке, посмотрите за статью Марка Руссиновича «Запуск Windows без служб»). Так что, к сожалению, включение и выключение питания кажется единственным способом избавиться от окон консоли зомби.

1
ответ дан 5 December 2019 в 22:18
поделиться

Лучшее, что я смог найти, - это обходной путь: привязать отсоединение всего к кнопке Shift-F5. Таким образом, вы в основном освобождаете окно от отладчика и можете закрыть само окно без того, чтобы получить осиротевшее окно cmd. Надеюсь, MS найдет решение. Инструменты -> Параметры -> Среда -> Клавиатура.

Между прочим, описанный выше процесс работает только спорадически. Поскольку эта проблема возникает довольно часто, есть ли способ решить ее раз и навсегда?

0
ответ дан 5 December 2019 в 22:18
поделиться

Mcrosoft подтверждает и описывает эту проблему здесь: http://support.microsoft.com/kb/982551/

Они выпустили оперативное исправление, которое можно получить по адресу: http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=982551&kbln=en-us

(вы должны указать адрес электронной почты, затем вам пришлют защищенный паролем установщик HotFix)

0
ответ дан 5 December 2019 в 22:18
поделиться

Здесь представлены несколько хороших решений.

Альтернатива: вместо остановки сеанса отладки нажатием SHIFT-F5 нажмите CTRL-C, что приведет к нормальному завершению программы, устраняя источник проблемы.

0
ответ дан 5 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: