наилучший метод запуска сеанса удаленной отладки в пользовательском режиме windbg
-
09-06-2019 - |
Вопрос
Какой ваш любимый метод запуска сеанса удаленной отладки в пользовательском режиме windbg?Почему вы предпочитаете эту технику другим техникам?(плюсы/минусы)
Существует по крайней мере четыре различных способа удаленной отладки в пользовательском режиме с использованием windbg, как описано в разделе "Удаленная отладка" файла справки debugging tools для Windows.
- запустите приложение на target, затем подключитесь к нему с хоста windbg.
- используйте windbg хоста remote.exe для запуска приложения на целевом сервере
- попросите хост windbg "интеллектуального клиента" запустить приложение на целевом сервере через сервер процессов, который запущен на целевом сервере
- запустите экземпляр windbg на целевой машине, используя опцию "-server", чтобы автоматически запустить сервер, затем подключитесь к серверу со второго компьютера.
Решение
"Лучшего" решения не существует.Каждая из возможностей имеет свои преимущества и недостатки, и полезно понимать их все.Это зависит от нескольких факторов, таких как:
- где расположены символы
- какой КОМПЬЮТЕР имеет доступ к Интернету для загрузки символов операционной системы
- какой объем данных вы можете скопировать на сервер (клиенты часто принимают лучше, если это всего лишь один Exe-файл)
- какова пропускная способность между клиентом и сервером
- вам нужны другие команды, которые просто CDB / WinDbg, напримерполучите доступ к CMD, затем рассмотрите remote.exe
- кто доступен на стороне сервера, специалист по отладке, которому вы можете легко подсказать множество загадочных команд, или обычный пользователь, который едва знает, как запустить командную строку
- обе стороны находятся в частной сети, поэтому вам нужен сервер "человек посередине", чтобы иметь возможность доступа друг к другу (или переадресация портов в качестве альтернативы, чего не хотят ИТ-специалисты, и на его настройку могут потребоваться дни)
Из этих 4 вариантов не забывайте, что клиенты часто хотят видеть именно то, что вы делаете, поэтому им требуется сеанс RDP, Teamviewer или что-то подобное.Это то, что они понимают.
Другие советы
Вариант 1 - мой любимый, потому что он самый простой.Я могу запустить приложение обычным способом, не беспокоясь о том, что WinDbg установит правильный рабочий каталог, передаст какие-либо аргументы командной строки и т.д.
К счастью, я не сталкивался ни с какими случаями, когда это не срабатывало!
Я обычно использую вариант 4 (-server), потому что это единственный, который не "всплывает", когда вы врываетесь в отладчик ядра достаточно долго, чтобы время ожидания TCP-соединения истекло.Но это более сложно и не приносит полного удовлетворения.Итак, я ищу "лучшие практики".