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


Активация смарт-клиента

После активации сервера обработки DbgSrv можно создать смарт-клиент на другом компьютере и начать сеанс отладки.

Существует два способа запуска смарт-клиента: запуск CDB или WinDbg с параметром командной строки -premote или с помощью графического интерфейса WinDbg.

Протокол смарт-клиента должен соответствовать протоколу сервера обработки. Общий синтаксис запуска смарт-клиента зависит от используемого протокола. Имеются следующие варианты:

Debugger -premote npipe:server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote tcp:server=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]

Debugger -premote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] [Options]

Чтобы использовать графический интерфейс для подключения к серверу обработки, WinDbg должен находиться в неактивном режиме. Он должен быть запущен без параметров командной строки или должен завершить предыдущий сеанс отладки. Выберите файл | Подключитесь к команде меню удаленной заглушки. Когда появится диалоговое окно "Подключение к удаленному серверу заглушки", введите одну из следующих строк в текстовое поле строки подключения:

npipe:server=Server,pipe=PipeName[,password=Password] 

tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 

tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 

com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] 

Кроме того, можно использовать кнопку "Обзор", чтобы найти активные серверы обработки.

Параметры в предыдущих командах имеют следующие возможные значения:

Отладчик
Это может быть CDB или WinDbg.

Сервер
Это сетевое имя или IP-адрес компьютера, на котором был создан сервер обработки. Две начальные обратные косые черты (\) являются необязательными в командной строке, но не разрешены в диалоговом окне WinDbg.

pipe= Имя канала
Если используется протокол NPIPE или SPIPE, PipeName — это имя, которое было присвоено каналу при создании сервера обработки.

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

net use \\Server\ipc$ /user:UserName

где сервер — это имя сервера, а Имя пользователя — имя учетной записи, которая имеет доступ к серверу.

При появлении запроса введите пароль для UserName.

После успешного выполнения этой команды можно активировать смарт-клиент с помощью параметра командной строки -premote или с помощью графического интерфейса WinDbg.

Обратите внимание , что может потребоваться включить общий доступ к файлам и принтерам на серверном компьютере. В панель управления перейдите в раздел "Сеть" и "Сеть Интернета>" и "Расширенный общий доступ к Центру> общего доступа". Выберите "Включить общий доступ к файлам и принтерам".

port= Розетка
Если используется протокол TCP или SSL, сокет является тем же номером порта сокета , который использовался при создании сервера обработки.

clicon
Указывает, что сервер обработки попытается подключиться к смарт-клиенту через обратное подключение. Клиент должен использовать clicon, только если сервер использует clicon. В большинстве случаев смарт-клиент запускается перед сервером обработки при использовании обратного подключения.

port= COMPort
Если используется протокол COM, COMPort указывает используемый com-порт. Префикс COM является необязательным. Например, допустимы как com2, так и "2".

baud= BaudRate
Если используется протокол COM, BaudRate должен соответствовать скорости baud, выбранной при создании сервера обработки.

channel= COMChannel
Если используется протокол COM, COMChannel должен соответствовать номеру канала, выбранному при создании сервера обработки.

proto= Протокол
Если используется протокол SSL или SPIPE, протокол должен соответствовать безопасному протоколу, используемому при создании сервера обработки.

Сертификат
Если используется протокол SSL или SPIPE, следует использовать идентичный параметр certuser=Cert или machuser=Cert, используемый при создании сервера обработки.

password= Пароль
Если при создании сервера обработки использовался пароль, необходимо предоставить пароль , чтобы создать смарт-клиент. Он должен соответствовать исходному паролю. В паролях учитывается регистр символов. Если указан неправильный пароль, сообщение об ошибке будет указывать "Ошибка 0x80004005".

ipversion=6
(Только средства отладки для Windows 6.6.07 и более ранних версий) Принудительно отладчик использовать IP-адрес версии 6, а не версию 4 при использовании TCP для подключения к Интернету. В Windows Vista и более поздних версиях отладчик пытается автоматически использовать IP-версию 6, что делает этот параметр ненужным.

Параметры
Здесь можно разместить любые дополнительные параметры командной строки. Полный список см . в параметрах командной строки. Если вы используете CDB, необходимо указать процесс отладки. Если вы используете WinDbg, можно указать процесс в командной строке или через графический интерфейс.

Так как сервер обработки просто выступает в качестве шлюза для интеллектуального клиента, дополнительные параметры будут совпадать с теми, которые будут использоваться, если вы запускаете отладчик в пользовательском режиме на том же компьютере, что и целевое приложение.

Если вы используете параметр -premote с .attach (Attach to Process) или .create (Create Process), параметры совпадают с указанными выше параметрами.

Устранение неполадок

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

Это редкость, что изменения протокола вносятся. Если это произойдет, убедитесь, что вы используете соответствующие версии последней доступной версии DbgSrv и WinDbg (классическая версия) или WinDbg. Сведения о скачивании последней версии см. в разделе "Средства отладки" для Windows.