Я знаю, как этого добиться. Просто моя техника немного неуклюжа. Все системы Windows 2000 и более поздние имеют базовый отладчик командной строки как часть установки по умолчанию, называемой NTSD. То, что я делаю в данный момент, выполняется:
ntsd -pn MyApp.exe
Когда появляется консоль отладчика, я могу ввести в консоль отладчика следующее:
.dump c:\my-deadlock.mdmp
.kill
То, что я ищу, - это то, что немного чище, и его легче отправить по электронной почте клиентам, чтобы они просто запускались. Я видел где-то упоминание (которое Google пока не может найти), что вы можете использовать drwtsn32.exe для извлечения аварийного дампа и завершения работы приложения.
Редактировать: можно несколько упростить команду:
ntsd -pn MyApp.exe -c ".dump c:\my-deadlock.mdmp; .kill"
Команда .detach
может быть дана, если процесс не завершился окончательно (например, длительное время ожидания сети), и вы хотите, чтобы процесс продолжался.