Как написать скрипт ADPlus для удобства использования клиентом для диагностики сбоев и зависаний - PullRequest
2 голосов
/ 04 марта 2011

Мы большой поклонник использования ADPlus в Средствах отладки для Windows для клиентов, которые испытывают сбои или зависания. Тем не менее, большая проблема, которую мы имеем, состоит в том, чтобы попытаться объяснить, что клиенты должны вводить для запуска. Мы отправили бы им сценарий, но, похоже, точное заклинание зависит от того, какой пользователь использует 32- или 64-разрядную версию, и от того, какую версию загруженных им средств отладки.

Наши запутанные инструкции на данный момент выглядят примерно так:

  • Найдите, где установлены средства отладки - это может быть c:\program files (x86)\Debugging Tools for windows (x86) или c:\program files\Debugging tools for windows (x86) или какой-либо другой вариант
  • Если вы используете 64-битное приложение, вам понадобится c:\program files\Debugging tools for windows (x64) вместо
  • Узнайте, каков ваш пользовательский каталог, он может c:\users\jim или z:\documents and settings\jim
  • Запустите командную строку и введите:

    <какой бы путь вы не указали выше> \ adplus -hang -pn myprocess.exe -o <каталог вашего пользователя> \ crash_dumps

Очевидно, что у этого есть много возможностей для неправильной работы, и это не лучший пользовательский опыт, поэтому я хотел бы иметь возможность отправить пользователю пакетный файл или другой скрипт, который обнаружит:

  • Местоположение средств отладки
  • Домашний каталог пользователя

Итак, есть ли способ узнать, где установлены инструменты отладки? Если местоположение существует в реестре, может ли это быть легко извлечено в командном файле? Можно ли найти домашний каталог пользователя из пакетного скрипта? Моя система (Win7-64) имеет переменную окружения HOMEPATH. Могу ли я предположить, что существует?

1 Ответ

2 голосов
/ 11 марта 2011

В ответ на мой собственный вопрос: похоже, более простой подход - просто запустить ProcDump , поскольку он имеет режим зависания, его можно разархивировать и запустить из любого места:

procdump -h -accepteula %HOMEPATH%\Desktop\crashreport.dmp myprocess.exe
...