Как создать мини-дамп процесса при сбое без явного запуска AdPlus в Windows 7? - PullRequest
5 голосов
/ 08 ноября 2010

У меня есть .NET-процесс, который иногда завершается с ошибкой AccessViolationException в собственном коде какой-либо сторонней библиотеки.

Я хочу иметь мини-дамп с полной памятью, когда это происходит.Я прочитал эту страницу - http://support.microsoft.com/kb/931673, раздел «Для сбора дампов пользовательского режима» и настроил реестр, как объясняет статья.Однако, когда происходит сбой, создается действительно маленький отчет - файла * .mdmp не видно.

Теперь я знаю, как запустить процесс из ADPLus или как его подключить к ужезапущенный процесс.Но это требует явного запуска ADPLus.

Мне было интересно, как я могу настроить Windows для автоматического запуска ADPlus, каждый раз, когда я запускаю проблемный процесс, независимо от того, как он запускается - из msbuild, двойным щелчком, из консольного скриптаи т.д. ...

Это означает, что при запуске aaaa.exe вместо запуска ADPlus используются определенные флаги, которые порождают aaaa.exe с соответствующими параметрами командной строки.

Я знаю, что есть флаги выполнения образав окнах, которые делают это, но я не знаю деталей.

Спасибо.

EDIT1

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

1 Ответ

2 голосов
/ 08 ноября 2010

Не берите в голову, нашли его.

  1. Создайте ключ с именем процесса (например, aaa.exe) в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Параметры выполнения файла изображения
  2. Добавление строкового значения Отладчик со значением ADPlus -crash -mss YourSymbolCacheFolderPath -MiniOnSecond -quiet -o YourDumpFolderPath -sc
...