Определить прерванное зависшее приложение - PullRequest
1 голос
/ 19 марта 2009

Я создал минимальный цикл отладки, который запускает и отлаживает процесс.

Когда процесс зависает и пользователь пытается закрыть его, Windows предоставляет окно сообщения с возможностью подождать или закончить сейчас. Я хотел бы попытаться определить, когда они подошли к концу, чтобы мой отладчик мог собрать соответствующую информацию. Однако я не могу понять, как обнаружить эту ситуацию. Коды завершения потока и процесса остаются в 0. В какой-то момент я думал, что они возвращают 0xCFFFFFFF, но это больше не происходит.

В качестве альтернативы, возможно, существуют некоторые записи реестра, которые можно изменить для запуска этого отладчика после закрытия приложения, например Dr. Watson. Возможно, это просто моя машина, но я не могу запустить отладчик (VS JIT debug, Dr. Watson и т. Д.) При закрытии зависшего приложения.

Я знаю, что это должно быть как-то возможно, потому что раньше я видел дампы HUNGAPP.

Спасибо за любую информацию!

Ответы [ 2 ]

1 голос
/ 15 апреля 2009

В этой теме есть серия блогов msdn , в которой описывается, как Windows справляется со сбоями.

0 голосов
/ 24 марта 2009

Вы можете запустить ваше приложение для той же цели с WinDbg, и когда приложение зависнет, оно создаст для вас файл дампа.

...