Udostępnij za pośrednictwem


Aktywowanie klienta inteligentnego

Po aktywowaniu serwera przetwarzania DbgSrv można utworzyć inteligentnego klienta na innym komputerze i rozpocząć sesję debugowania.

Istnieją dwa sposoby uruchamiania inteligentnego klienta: uruchamiając usługę CDB lub WinDbg przy użyciu -premote opcji wiersza polecenialub przy użyciu interfejsu graficznego WinDbg.

Ważny

Podczas korzystania z debugowania zdalnego należy wziąć pod uwagę ważne zagadnienia dotyczące zabezpieczeń. Aby uzyskać więcej informacji, w tym informacje na temat włączania trybu bezpiecznego, zobacz Zabezpieczenia podczas debugowania zdalnego i zagadnienia dotyczące zabezpieczeń dla narzędzi debugowania systemu Windows.

Protokół klienta inteligentnego musi być zgodny z protokołem serwera przetwarzania. Ogólna składnia uruchamiania inteligentnego klienta zależy od używanego protokołu. Istnieją następujące opcje:

zalecane metody połączenia z dodatkowymi zabezpieczeń

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]

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

Niezabezpieczone metody połączenia

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]

Aby używać interfejsu graficznego do nawiązywania połączenia z serwerem przetwarzania, windbg musi być w trybie uśpienia — musi być uruchomiony bez parametrów wiersza polecenia lub musi zakończyć poprzednią sesję debugowania. Wybierz plik | Połącz się z zdalnym łącznikiem menu. Po wyświetleniu okna dialogowego Połącz z zdalnym serwerem stub Server wprowadź jeden z następujących parametrów w polu tekstowym Parametry połączenia:

zalecane metody połączenia z dodatkowymi zabezpieczeń

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] 

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

Niezabezpieczone metody połączenia

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] 

Alternatywnie możesz użyć przycisku Przeglądaj, aby zlokalizować aktywne serwery przetwarzania.

Parametry

Parametry w poprzednich poleceniach mają następujące możliwe wartości:

debugera
Może to być CDB lub WinDbg.

serwera
Jest to nazwa sieci lub adres IP komputera, na którym został utworzony serwer przetwarzania. Dwa początkowe ukośniki odwrotne (\) są opcjonalne w wierszu polecenia, ale nie są dozwolone w oknie dialogowym WinDbg.

potok =PipeName
Jeśli jest używany protokół NPIPE lub SPIPE, PipeName jest nazwą nadaną potokowi podczas tworzenia serwera przetwarzania.

Jeśli nie zalogowano się na komputerze klienckim przy użyciu konta z dostępem do komputera serwera, należy podać nazwę użytkownika i hasło. Na komputerze klienckim w oknie wiersza polecenia wprowadź następujące polecenie.

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

gdzie Server jest nazwą komputera serwera, a UserName jest nazwą konta, które ma dostęp do komputera serwera.

Po wyświetleniu monitu wprowadź hasło UserName.

Po pomyślnym wykonaniu tego polecenia można aktywować klienta inteligentnego przy użyciu opcji wiersza polecenia -premote lub przy użyciu interfejsu graficznego WinDbg.

Uwaga Może być konieczne włączenie udostępniania plików i drukarek na komputerze serwera. W Panelu sterowania przejdź do Network and Internet > Network and Sharing Center> Zaawansowane ustawienia udostępniania. Wybierz pozycję Włącz udostępnianie plików i drukarek.

port =Socket
Jeśli jest używany protokół TCP lub SSL, Socket jest tym samym numerem portu gniazda, który został użyty podczas tworzenia serwera przetwarzania.

interfejsu wiersza polecenia
Określa, że serwer przetwarzania spróbuje nawiązać połączenie z klientem inteligentnym za pośrednictwem połączenia odwrotnego. Klient musi używać clicon, jeśli i tylko wtedy, gdy serwer używa interfejsu wiersza polecenia . W większości przypadków inteligentny klient jest uruchamiany przed serwerem przetwarzania, gdy jest używane odwrotne połączenie.

port =COMPort
Jeśli jest używany protokół COM, COMPort określa port COM do użycia. Prefiks "COM" jest opcjonalny — na przykład dopuszczalne są zarówno wartości "com2" i "2".

baud=BaudRate
Jeśli jest używany protokół COM, BaudRate powinien odpowiadać szybkości transmisji wybranej podczas tworzenia serwera przetwarzania.

kanał =COMChannel
Jeśli jest używany protokół COM, COMChannel powinien odpowiadać numerowi kanału wybranego podczas tworzenia serwera przetwarzania.

proto = protokołu
Jeśli jest używany protokół SSL lub SPIPE, Protokół powinien być zgodny z bezpiecznym protokołem używanym podczas tworzenia serwera przetwarzania.

Cert
Jeśli jest używany protokół SSL lub SPIPE, należy użyć identycznego parametru certuser=Cert lub machuser=Cert parametru, który został użyty podczas tworzenia serwera przetwarzania.

password=Password
Jeśli hasło zostało użyte podczas tworzenia serwera przetwarzania, hasło należy podać, aby utworzyć klienta inteligentnego. Musi być zgodne z oryginalnym hasłem. W hasłach jest rozróżniana wielkość liter. Jeśli podano nieprawidłowe hasło, komunikat o błędzie określi "Błąd 0x80004005".

ipversion=6
(Narzędzia debugowania dla systemu Windows 6.6.07 i starszych) Wymusza, aby debuger używał adresu IP w wersji 6, a nie w wersji 4 podczas nawiązywania połączenia z Internetem przy użyciu protokołu TCP. W systemie Windows Vista i nowszych wersjach debuger próbuje automatycznie domyślnie ustawić adres IP w wersji 6, co sprawia, że ta opcja jest niepotrzebna.

Opcje
Wszystkie dodatkowe parametry wiersza polecenia można umieścić tutaj. Aby uzyskać pełną listę, zobacz Command-Line Opcje. Jeśli używasz usługi CDB, należy określić proces, który chcesz debugować. Jeśli używasz usługi WinDbg, możesz określić proces w wierszu polecenia lub za pomocą interfejsu graficznego.

Ponieważ serwer przetwarzania działa po prostu jako brama dla klienta inteligentnego, dodatkowe opcje będą takie same jak te, których należy użyć, jeśli uruchamiasz debuger trybu użytkownika na tej samej maszynie co aplikacja docelowa.

Jeśli używasz opcji -premote z .attach (Dołączanie do procesu) lub .create (Utwórz proces), parametry są takie same jak wymienione powyżej.

Rozwiązywanie problemów

Jeśli zostanie wyświetlony następujący komunikat: Klient nie korzysta z tej samej wersji protokołu komunikacji sieciowej co serwer oznacza to, że wersja serwera DbgSrv, z którą próbujesz nawiązać połączenie, korzysta z innej wersji protokołu niż wersja windbg.

Rzadko zdarza się, że wprowadzono zmiany protokołu. Jeśli tak się stanie, upewnij się, że używasz pasujących wersji najnowszej dostępnej wersji dbgSrv i WinDbg (wersja klasyczna) lub WinDbg. Aby uzyskać informacje na temat pobierania najnowszej wersji, zobacz narzędzia debugowania dla systemu Windows.