Debugowanie zdalne przy użyciu usługi WinDbg
Debugowanie zdalne obejmuje dwa debugery działające w dwóch różnych lokalizacjach. Debuger wykonujący debugowanie jest nazywany serwerem debugowania . Drugi debuger, nazwany klientem debugowania , steruje sesją debugowania z zdalnej lokalizacji. Aby ustanowić sesję zdalną, najpierw należy skonfigurować serwer debugowania, a następnie aktywować klienta debugowania.
Kod, który jest debugowany, może być uruchomiony na tym samym komputerze, na którym działa serwer debugowania, lub może być uruchomiony na osobnym komputerze. Jeśli serwer debugowania wykonuje debugowanie w trybie użytkownika, debugowany proces może być uruchamiany na tym samym komputerze co serwer debugowania. Jeśli serwer debugowania wykonuje debugowanie w trybie jądra, debugowany kod będzie zwykle uruchamiany na osobnym komputerze docelowym.
Na poniższym diagramie przedstawiono sesję zdalną, w której serwer debugowania, uruchomiony na komputerze hosta, wykonuje debugowanie kodu w trybie jądra, który jest uruchomiony na oddzielnym komputerze docelowym.
Ważny
Istnieją dodatkowe ważne zagadnienia dotyczące zabezpieczeń podczas korzystania z debugowania zdalnego, aby uzyskać więcej informacji, w tym informacje na temat włączania trybu bezpiecznego, zobacz Zabezpieczenia podczas debugowania zdalnego i zagadnienia dotyczące zabezpieczeń narzędzia debugowania systemu Windows.
Istnieje kilka protokołów transportowych, których można użyć na potrzeby połączenia zdalnego debugowania: TCP, NPIPE, SPIPE, SSL i COM Port. Załóżmy, że wybrano użycie protokołu TCP jako protokołu i wybrano użycie windbg jako klienta debugowania i serwera debugowania. Poniższa procedura umożliwia ustanowienie sesji debugowania trybu jądra zdalnego.
Na komputerze hosta otwórz windbg i ustanów sesję debugowania trybu jądra z komputerem docelowym. (Zobacz debugowanie na żywo Kernel-Mode przy użyciu WinDbg klasycznego.)
Aby przerwać, wybierz Break z menu Debug lub naciśnij CTRL-Break.
W oknie polecenia debugera wprowadź następujące polecenie.
.server tcp:port=5005
Uwaga Numer portu 5005 jest dowolny. Numer portu jest twoim wyborem.
WinDbg odpowie danymi wyjściowymi podobnymi do poniższych.
Server started. Client can connect with any of these command lines 0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
Na komputerze zdalnym otwórz WinDbg i wybierz Połącz z sesją zdalną z menu Plik.
Pod ciąg połączenia, wprowadź następujący ciąg.
tcp:Port=5005,Server=YourHostComputer
gdzie YourHostComputer jest nazwą komputera hosta, na którym jest uruchomiony serwer debugowania.
Wybierz pozycję OK.
Korzystanie z wiersza polecenia
Alternatywą dla procedury podanej w poprzedniej sekcji jest skonfigurowanie sesji zdalnego debugowania w wierszu polecenia. Załóżmy, że skonfigurowana jest sesja debugowania trybu jądra między komputerem hosta a komputerem docelowym za pośrednictwem 1394 w kanale 32. Poniższa procedura umożliwia ustanowienie sesji zdalnego debugowania:
Na komputerze hosta wprowadź następujące polecenie w oknie wiersza polecenia.
windbg -server tcp:port=5005 -k 1394:channel=32
Na komputerze zdalnym wprowadź następujące polecenie w oknie wiersza polecenia.
windbg -remote tcp:Port=5005,Server=YourHostComputer
gdzie YourHostComputer jest nazwą komputera hosta, na którym jest uruchomiony serwer debugowania.
Ważny
Transport 1394 jest dostępny do użycia w systemie Windows 10 w wersji 1607 i starszych. Nie jest ona dostępna w nowszych wersjach systemu Windows. Projekty należy przenieść do innych transportów, takich jak KDNET przy użyciu sieci Ethernet. Aby uzyskać więcej informacji na temat tego transportu, zobacz Automatyczne konfigurowanie debugowania jądra sieci KDNET.
Dodatkowe informacje
Istnieje wiele sposobów ustanawiania zdalnego debugowania innych niż pokazane w tym temacie. Aby uzyskać pełne informacje na temat konfigurowania serwera debugowania w oknie poleceń debugera WinDbg , zobacz .server (Tworzenie serwera debugowania). Aby uzyskać pełne informacje na temat uruchamiania windbg (i ustanawiania zdalnego debugowania) w wierszu polecenia, zobacz WinDbg Command-Line Options.