Поделиться через


Удаленная отладка с помощью WinDbg

Удаленная отладка включает два отладчика, работающих в двух разных расположениях. Отладчик, выполняющий отладку, называется сервером отладки. Второй отладчик, называемый клиентом отладки, управляет сеансом отладки из удаленного расположения. Чтобы установить удаленный сеанс, сначала необходимо настроить сервер отладки, а затем активировать клиент отладки.

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

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

Схема, демонстрирующая удаленные, узел и целевые компьютеры, подключенные к отладке в режиме ядра.

Для удаленного отладки можно использовать несколько транспортных протоколов: TCP, NPIPE, SPIPE, SSL и COM-порт. Предположим, что вы решили использовать TCP в качестве протокола, и вы решили использовать WinDbg как клиент отладки, так и сервер отладки. Для создания сеанса отладки в удаленном режиме ядра можно использовать следующую процедуру:

  1. На хост-компьютере откройте WinDbg и установите сеанс отладки в режиме ядра с целевым компьютером. (См. раздел Отладка в режиме динамического ядра с помощью WinDbg (классическая модель).)

  2. Врваться, выбрав "Разрыв " в меню отладки или нажав клавиши CTRL-Break.

  3. В командном окне отладчика введите следующую команду.

    .server tcp:port=5005

    Обратите внимание , что номер порта 5005 является произвольным. Номер порта — это ваш выбор.

  4. WinDbg будет реагировать на выходные данные, аналогичные приведенным ниже.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. На удаленном компьютере откройте WinDbg и выберите "Подключиться к удаленному сеансу " в меню "Файл ".

  6. В разделе "Строка подключения" введите следующую строку.

    tcp:Port=5005,Server=YourHostComputer

    где YourHostComputer — это имя хост-компьютера, на котором выполняется сервер отладки.

    Нажмите ОК.

Использование командной строки

В качестве альтернативы процедуре, приведенной в предыдущем разделе, можно настроить сеанс удаленной отладки в командной строке. Предположим, что вы настроили сеанс отладки в режиме ядра между узлом и целевым компьютером, более 1394 кабеля на канале 32. Для создания удаленного сеанса отладки можно использовать следующую процедуру:

  1. На хост-компьютере введите следующую команду в окне командной строки.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. На удаленном компьютере введите следующую команду в окне командной строки.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    где YourHostComputer — это имя хост-компьютера, на котором выполняется сервер отладки.

Внимание

Транспорт 1394 доступен для использования в Windows 10 версии 1607 и более ранних версий. Она недоступна в более поздних версиях Windows. Вы должны перенести проекты в другие транспорты, такие как KDNET с помощью Ethernet. Дополнительные сведения об этом транспорте см. в разделе "Настройка автоматической отладки сетевого ядра KDNET".

Дополнительные сведения

Существует множество способов установки удаленной отладки, отличных от тех, которые показаны в этом разделе. Полные сведения о настройке сервера отладки в командном окне отладчика WinDbg см. в разделе .server (Создание сервера отладки). Полные сведения о запуске WinDbg (и установке удаленной отладки) в командной строке см. в разделе "Параметры командной строки WinDbg".