Выбор оптимального метода удаленной отладки
Существует два основных метода выполнения удаленной отладки, а также несколько дополнительных методов и огромное количество комбинированных методов.
Ниже приведены некоторые советы, которые помогут вам выбрать наиболее подходящий метод.
Удаленная отладка с помощью отладчика обычно является лучшим методом. Если у вас просто один сервер и один клиент, и они могут свободно подключаться друг к другу, на клиенте и сервере установлены одинаковые двоичные файлы отладчика, а специалист по отладке, который будет управлять клиентом, сможет поговорить с кем-то в комнате с сервером, это рекомендуемый метод.
Клиент и сервер могут работать под управлением любой версии Windows. Они не должны работать в той же версии, что и друг с другом.
Если клиенту не удается отправить запрос на подключение к серверу, но сервер может отправить запрос клиенту, можно использовать удаленную отладку через отладчик с обратным подключением с помощью параметра clicon .
Удаленная отладка с помощью remote.exe используется для удаленного управления окном командной строки. Его можно использовать для удаленного управления KD, CDB или NTSD. Его нельзя использовать с WinDbg.
Если у клиента нет копий двоичных файлов отладчика, необходимо использовать метод remote.exe.
Сервер обработки или сервер подключения KD можно использовать, если специалист по отладке не сможет общаться с кем-то в комнате с сервером. Вся фактическая работа по отладке выполняется клиентом (который называется смарт-клиентом); Это устраняет необходимость в наличии второго пользователя на самом сервере.
Серверы обработки используются для отладки в пользовательском режиме; Серверы подключений KD используются для отладки в режиме ядра. Кроме этого различия, они ведут себя аналогичным образом.
Этот метод также полезен, если компьютер, на котором будет работать сервер, не может справиться с большими нагрузками процессов или если технический специалист, на котором выполняется клиент, имеет доступ к файлам символов или исходным файлам, которые являются конфиденциальными и не могут быть доступны серверу. Однако этот метод не так быстр и эффективен, как удаленная отладка с помощью отладчика. Этот метод нельзя использовать для отладки файла дампа.
Дополнительные сведения см. в разделах Серверы обработки (режим пользователя) и Серверы подключения KD (режим ядра).
Повторитель — это упрощенный прокси-сервер, который ретранслирует данные между двумя компьютерами. Вы можете добавить ретранслятор между клиентом и сервером, если выполняется удаленная отладка с помощью отладчика или если используется сервер обработки.
Использование ретрансляторов может потребоваться, если клиент и сервер не могут взаимодействовать напрямую друг с другом, но каждый из них может получить доступ к внешнему компьютеру. Обратные подключения также можно использовать с повторителями. Можно даже использовать два ретрансляторов подряд, но это редко требуется.
Дополнительные сведения см. в разделе Повторители .
Также можно управлять CDB (или NTSD) из отладчика ядра. Это еще одна форма удаленной отладки. Дополнительные сведения см. в разделе Управление отладчиком User-Mode из отладчика ядра .
Возможны варианты всех этих методов.
Можно объединить несколько компьютеров в цепочку, чтобы воспользоваться преимуществами нескольких методов транспорта. Вы можете создать сложные последовательности транспорта, которые учитывают, где находится технический специалист, где находятся символы и есть ли брандмауэры, препятствующие подключению в определенных направлениях. Некоторые примеры см. в разделе Расширенные сценарии удаленной отладки .
Можно даже выполнить удаленную отладку на одном компьютере. Например, может быть полезно запустить сервер обработки с низким уровнем привилегий, а затем подключиться к нему с помощью интеллектуального клиента с высоким уровнем привилегий.