Exe заблокирован после выхода - PullRequest
0 голосов
/ 20 февраля 2012

Переключил разработку на 64-битные окна, и у меня возникла проблема. После того, как я выйду из исполняемого файла, он все еще заблокирован как минимум на 5 минут, а иногда и до перезагрузки. Поэтому я не могу сделать новую сборку, которая делает разработку немного медленной и разочаровывающей.

Filelock сообщает, что он заблокирован "системой" (полезно) и не может разблокировать его, даже работая от имени администратора. Это не похоже на runni = ng в procxp или taskmanager.

Это приложение на C ++, использующее Qt, с vs2010 pro на 64-битной Windows7 pro - не уверен, что это проблема, на 32-битной версии все было в порядке.

Кто-нибудь еще видел что-нибудь подобное?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

У меня часто бывают похожие проблемы, которые в моем случае возникают, когда я отлаживаю приложение, использующее MIDI-устройство. Если приложение дает сбой или я прекращаю отладку (то есть, останавливаюсь в отладчике, вместо того, чтобы приложение нормально завершало работу), то один драйвер в моей системе не освобождает устройство. Процесс сопротивляется всем попыткам убить его. Либо я должен временно отключить устройство (чтобы освободить драйвер), либо перезагрузить компьютер. В качестве обходного пути я обычно могу просто переименовать .exe, что означает, что я могу снова связываться, хотя в итоге я получаю множество процессов зомби.

Итак, первое, что нужно проверить - есть ли какие-либо устройства ввода-вывода, которые вы используете в этом приложении, и установлены ли последние версии драйверов. Если вы не считаете, что используете какие-то конкретные драйверы, попробуйте запустить windbg, присоединиться к процессу и набрать !analyze -v -hang. Это может сказать вам, какой драйвер dll он ждет.

0 голосов
/ 20 февраля 2012

Вероятно, глупая идея. Но попробуйте изменить право собственности на файл снова и включите "Взять на себя владение" в настройках файловой системы.

Удивительно, что владеть папкой, а не всеми файлами внутри нее.

...