Я нашел несколько сообщений о том, как создать аварийный дамп вручную, когда это необходимо, но я хотел бы убедиться, что аварийный дамп создается при сбое отслеживаемого приложения.
Инструмент TechNet PROCDUMP может сделать это отлично. Что я хотел бы знать, так это то, как я могу написать некоторый код, чтобы сделать то же самое в собственной программе управления, чтобы я мог создавать файл дампа только при возникновении исключения.
Моя программа - это сервисное приложение, которое знает идентификаторы процессов программ, которые я хочу отслеживать.
Просто чтобы уточнить, я хочу подражать тому, что будет делать этот вызов PROCDUMP:
procdump -e someprocess.exe -w
Теоретически Windows должна быть в состоянии сделать эту работу для меня с DrWatson. У меня проблема в том, что у меня работает около 200 клиентских систем, которые утверждают, что наше приложение случайно падает Доктор Ватсон, похоже, не подтверждает факт сбоя наших приложений, поэтому я решил, что я предпочел бы, чтобы генерация аварийного дампа контролировалась нашим собственным программным обеспечением.
Мне удалось заставить мои собственные приложения создавать свои собственные дампы, используя __try / исключением и MiniDumpWriteDump () с типом MiniDumpWithFullMemory ... но я не могу смотреть на локальные переменные и т. Д. С WinDbg, так что я предполагаю, потому что оно было запущено из самого приложения ... так что ... еще одна причина, по которой я хотел бы, чтобы приложение типа монитора / управления выполняло эту работу.
Как минимум ... как одно приложение может реагировать на сбой другого приложения? Нужно ли устанавливать какой-либо отладочный хук или делать вид, что программа управления на самом деле является настраиваемым отладчиком?
Приветствия