наилучший метод запуска сеанса удаленной отладки в пользовательском режиме windbg

StackOverflow https://stackoverflow.com/questions/52855

Вопрос

Какой ваш любимый метод запуска сеанса удаленной отладки в пользовательском режиме windbg?Почему вы предпочитаете эту технику другим техникам?(плюсы/минусы)

Существует по крайней мере четыре различных способа удаленной отладки в пользовательском режиме с использованием windbg, как описано в разделе "Удаленная отладка" файла справки debugging tools для Windows.

  1. запустите приложение на target, затем подключитесь к нему с хоста windbg.
  2. используйте windbg хоста remote.exe для запуска приложения на целевом сервере
  3. попросите хост windbg "интеллектуального клиента" запустить приложение на целевом сервере через сервер процессов, который запущен на целевом сервере
  4. запустите экземпляр windbg на целевой машине, используя опцию "-server", чтобы автоматически запустить сервер, затем подключитесь к серверу со второго компьютера.
Это было полезно?

Решение

"Лучшего" решения не существует.Каждая из возможностей имеет свои преимущества и недостатки, и полезно понимать их все.Это зависит от нескольких факторов, таких как:

  • где расположены символы
  • какой КОМПЬЮТЕР имеет доступ к Интернету для загрузки символов операционной системы
  • какой объем данных вы можете скопировать на сервер (клиенты часто принимают лучше, если это всего лишь один Exe-файл)
  • какова пропускная способность между клиентом и сервером
  • вам нужны другие команды, которые просто CDB / WinDbg, напримерполучите доступ к CMD, затем рассмотрите remote.exe
  • кто доступен на стороне сервера, специалист по отладке, которому вы можете легко подсказать множество загадочных команд, или обычный пользователь, который едва знает, как запустить командную строку
  • обе стороны находятся в частной сети, поэтому вам нужен сервер "человек посередине", чтобы иметь возможность доступа друг к другу (или переадресация портов в качестве альтернативы, чего не хотят ИТ-специалисты, и на его настройку могут потребоваться дни)

Из этих 4 вариантов не забывайте, что клиенты часто хотят видеть именно то, что вы делаете, поэтому им требуется сеанс RDP, Teamviewer или что-то подобное.Это то, что они понимают.

Другие советы

Вариант 1 - мой любимый, потому что он самый простой.Я могу запустить приложение обычным способом, не беспокоясь о том, что WinDbg установит правильный рабочий каталог, передаст какие-либо аргументы командной строки и т.д.

К счастью, я не сталкивался ни с какими случаями, когда это не срабатывало!

Я обычно использую вариант 4 (-server), потому что это единственный, который не "всплывает", когда вы врываетесь в отладчик ядра достаточно долго, чтобы время ожидания TCP-соединения истекло.Но это более сложно и не приносит полного удовлетворения.Итак, я ищу "лучшие практики".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top