Активация сервера обработки
Сервер обработки, включенный в средства отладки для Windows, называется DbgSrv (dbgsrv.exe). Чтобы активировать сервер обработки, откройте окно командной строки с повышенными привилегиями (запуск от имени администратора) и введите команду dbgsrv.
примечание Вы можете активировать сервер обработки без повышенных привилегий, а клиенты отладки смогут подключаться к серверу. Однако клиенты не смогут обнаруживать сервер обработки, если он не был активирован с повышенными привилегиями. Сведения об обнаружении серверов отладки см. в разделе Поиск серверов обработки.
Важный
При использовании удаленной отладки необходимо учитывать важные аспекты безопасности. Дополнительные сведения о включении безопасного режима см. в разделе Безопасность во время удаленной отладки и вопросы безопасности для средств отладки Windows.
DbgSrv поддерживает несколько транспортных протоколов: именованный канал (NPIPE), TCP, COM-порт, безопасный канал (SPIPE) и уровень безопасных сокетов (SSL).
Рекомендуемые методы подключения с некоторыми дополнительными безопасности
dbgsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
небезопасные методы подключения
dbgsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
dbgsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [[-sifeo Executable] -c[s] AppCmdLine] [-x | -pc]
Параметры
Параметры в предыдущих командах имеют следующие возможные значения:
pipe=PipeName
Если используется протокол NPIPE или SPIPE, PipeName — это строка, которая будет служить именем канала. Каждое имя канала должно определять уникальный сервер обработки. При попытке повторного использования имени канала появится сообщение об ошибке.
PipeName не должны содержать пробелы или кавычки.
PipeName может включать числовый код форматирования-style, например %x или %d. Сервер обработки заменит его идентификатором процесса DbgSrv. Второй такой код будет заменен идентификатором потока DbgSrv.
Примечание Может потребоваться включить общий доступ к файлам и принтерам на компьютере, на котором запущен сервер обработки. На панели управления перейдите к разделу Network and Internet > Network and Sharing Center> Дополнительные параметры общего доступа. Выберите Включить общий доступ к файлам и принтерам.
port=Socket
Если используется протокол TCP или SSL, сокетом
Также можно указать диапазон портов, разделенных двоеточием. DbgSrv проверяет каждый порт в этом диапазоне, чтобы узнать, является ли он бесплатным. Если он находит свободный порт и не возникает ошибки, сервер обработки будет создан. Смарт-клиент должен указать фактический порт, используемый для подключения к серверу. Чтобы определить фактический порт, используйте любой из методов, описанных в поиск серверов обработки; При отображении сервера обработки порт будет следовать двумя числами, разделенными двоеточием. Первое число будет фактическим используемым портом; Второй можно игнорировать. Например, если порт был указан как port=51:60, а порт 53 фактически использовался, результаты поиска будут отображать "port=53:60". (Если вы используете параметр clicon для установления обратного подключения, смарт-клиент может указать диапазон портов таким образом, в то время как сервер обработки должен указать фактически используемый порт.)
clicon=клиента
Если используется протокол TCP или SSL и указан параметр clicon clicon, откроется обратное подключение. Это означает, что сервер обработки попытается подключиться к смарт-клиенту, а не позволить клиенту инициировать контакт. Это может быть полезно, если у вас есть брандмауэр, который предотвращает подключение в обычном направлении.
клиент указывает сетевое имя или IP-адрес компьютера, на котором существует смарт-клиент или будет создан. Два начальных обратных косых шеи (\) являются необязательными.
Так как сервер обработки ищет один конкретный клиент, вы не можете подключить несколько клиентов к серверу, если используется этот метод. Если подключение отказывается или неработает, необходимо перезапустить сервер обработки. Сервер обработки обратного подключения не будет отображаться, если пользователь использует параметр командной строки -QR- для отображения всех активных серверов.
Примечание Если используется clicon, рекомендуется запустить смарт-клиент перед созданием сервера обработки, хотя также разрешен обычный порядок (сервер перед клиентом).
порт =COMPort
При использовании com-протокола COMPort указывает используемый com-порт. Префикс COM является необязательным. Например, допустимы как com2, так и "2".
baud=BaudRate
Если используется протокол COM, BaudRate указывает скорость выполнения соединения. Разрешена любая скорость baud, поддерживаемая оборудованием.
канал =COMChannel
Если используется протокол COM, COMChannel указывает com-канал, который будет использоваться при взаимодействии с клиентом отладки. Это может быть любое значение от 0 до 254 включительно. Вы можете использовать один COM-порт для нескольких подключений с использованием разных номеров каналов. (Это отличается от использования COM-портов для отладочного кабеля. В этой ситуации нельзя использовать каналы в com-порту.)
proto=Протокол
Если используется протокол SSL или SPIPE, протокола
сертификат
Если используется протокол SSL или SPIPE, сертификат указывает сертификат. Это может быть имя сертификата или отпечаток сертификата (строка шестнадцатеричных цифр, заданных оснастки сертификата). Если используется синтаксис certuser=сертификат Cert, отладчик будет искать сертификат в системном хранилище (хранилище по умолчанию). Если используется синтаксис machuser=сертификатов, отладчик будет искать сертификат в хранилище компьютеров. Указанный сертификат должен поддерживать проверку подлинности сервера.
скрытые
Предотвращает отображение сервера обработки при использовании параметра командной строки -QR- для отображения всех активных серверов.
password=Password
Требует, чтобы смарт-клиент предоставлял указанный пароль для подключения к серверу обработки.
пароль может быть любой буквенно-цифровой строкой, длиной до двенадцати символов.
Важный
Использование пароля с протоколом TCP, NPIPE или COM обеспечивает только небольшое количество защиты, так как пароль не шифруется. При использовании пароля вместе с протоколом SSL или SPIPE пароль шифруется. Если вы хотите установить более безопасный удаленный сеанс, необходимо использовать протокол SSL или SPIPE.
ipversion=6
(Только средства отладки для Windows 6.6.07 и более ранних версий) Принудительно отладчик использовать IP-адрес версии 6, а не версию 4 при использовании TCP для подключения к Интернету. В Windows Vista и более поздних версиях отладчик пытается автоматически использовать IP-версию 6, что делает этот параметр ненужным.
IcfEnable
Вызывает отладчик включить необходимые подключения портов для tcp или именованного канала связи, если брандмауэр подключения к Интернету активен. По умолчанию брандмауэр подключения к Интернету отключает порты, используемые этими протоколами. Если
-sifeoИсполняемый
Приостанавливает значение параметра выполнения файла изображения (IFEO) для данного изображения.
Исполняемый должен содержать имя файла исполняемого образа, включая расширения имени файла. Параметр -sifeo позволяет задать DbgSrv в качестве отладчика IFEO для образа, созданного параметром -c, не вызывая рекурсивного вызова из-за параметра IFEO. Этот параметр можно использовать только в том случае, если используется -c.
-c
Вызывает dbgSrv для создания нового процесса. Это можно использовать для создания процесса, который планируется выполнить отладку. Это похоже на создание нового процесса от отладчика, за исключением того, что этот процесс не будет отлаживаться при его создании. Чтобы выполнить отладку этого процесса, определите свой идентификатор и используйте параметр -p при запуске интеллектуального клиента для отладки этого процесса.
Приводит к немедленной приостановке созданного процесса. Если вы используете этот параметр, рекомендуется использовать CDB в качестве смарт-клиента и запустить смарт-клиент с параметром командной строки -pb в сочетании с -p PID. Если включить параметр -pb в командной строке, процесс возобновляется, когда отладчик присоединяется к нему; В противном случае можно возобновить процесс с помощью команды ~*m.
AppCmdLine
Указывает полную командную строку создаваемого процесса.
AppCmdLine может быть строкой Юникода или ASCII и может включать любой печатный символ. Весь текст, который отображается после параметра -c], будет взят для формирования строки AppCmdLine.
-x
Приводит к игнорировать оставшуюся часть командной строки. Этот параметр полезен при запуске DbgSrv из приложения, которое может добавить нежелательный текст в командную строку.
-pc
Приводит к игнорировать оставшуюся часть командной строки. Этот параметр полезен при запуске DbgSrv из приложения, которое может добавить нежелательный текст в командную строку. Синтаксическая ошибка приводит к возникновению ошибки, если -pc является последним элементом в командной строке DbgSrv. Помимо этого ограничения, -pc идентичен -x.
Вы можете запустить любое количество серверов обработки на одном компьютере. Однако это обычно не требуется, так как один сервер обработки может использоваться любым количеством смарт-клиентов (каждый из которых участвует в другом сеансе отладки).