Подключить WinDbg к процессу, запущенному из HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Запускать при входе в систему? - PullRequest
3 голосов
/ 17 января 2011

В настоящее время у меня установлено приложение .NET на 28 000 рабочих станций.На всех них этот процесс запускается при входе пользователя из раздела реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.На большинстве этих рабочих станций он работает нормально, но на некоторых из них происходит сбой при работе таким способом.Досадно, что запуск вручную после входа в систему работает нормально, и не происходит сбоев.

Поэтому я пытаюсь выяснить, как настроить и запустить WinDbg и подключить к этому процессу ввремя для меня, чтобы попытаться получить дамп памяти и хотя бы некоторое представление о том, что происходит.

Как я могу это сделать?Насколько мне известно, порядок автоматического запуска приложений в Windows не гарантирован (в случае необходимости это WindowsXP SP3), и поэтому это будет не так просто.

Ответы [ 2 ]

2 голосов
/ 17 января 2011

Один из способов сделать это - GFlags .Gflags можно указать подключить к отладчику при запуске процесса.

И сценарий отладчика можно передать в командной строке, чтобы получить дамп памяти, когда процесс завершается или выдает исключение.

1 голос
/ 17 января 2011

Один из способов добиться этого - развернуть пользовательскую сборку вашего приложения на рабочей станции, в которой обнаружена проблема. Эта сборка должна вызвать Debugger.Break () как можно скорее, чтобы запустить отладчик JIT по умолчанию.

Если вы установите необходимые ключи реестра , чтобы WinDbg регистрировался как отладчик JIT по умолчанию, он должен подключаться к вашему приложению при запуске, позволяя получить дамп памяти.

...