Sdílet prostřednictvím


Vzdálené ladění pomocí WinDbg

Vzdálené ladění zahrnuje dva ladicí programy spuštěné ve dvou různých umístěních. Ladicí program, který provádí ladění, se nazývá ladicí server. Druhý ladicí program, zvaný ladicí klient , řídí ladicí relaci z vzdáleného místa. Pokud chcete vytvořit vzdálenou relaci, musíte nejprve nastavit ladicí server a pak aktivovat ladicí klient.

Laděný kód může běžet na stejném počítači, na kterém běží ladicí server, nebo může běžet na samostatném počítači. Pokud ladicí server provádí ladění v uživatelském režimu, může se proces ladění spustit na stejném počítači jako ladicí server. Pokud ladicí server provádí ladění v režimu jádra, pak by laděný kód obvykle běžel na samostatném cílovém počítači.

Následující diagram znázorňuje vzdálenou relaci, kdy ladicí server spuštěný na hostitelském počítači provádí ladění kódu v režimu jádra, který běží na samostatném cílovém počítači.

diagram znázorňující vzdálené, hostitelské a cílové počítače připojené k ladění v režimu jádra

Důležitý

Při použití vzdáleného ladění existují další důležité aspekty zabezpečení, další informace, včetně informací o povolení zabezpečeného režimu, viz Zabezpečení během vzdáleného ladění a Aspekty zabezpečení pro nástroje ladění systému Windows.

Pro vzdálené ladění připojení můžete použít několik přenosových protokolů: TCP, NPIPE, SPIPE, SSL a COM Port. Předpokládejme, že jste se rozhodli použít protokol TCP a rozhodli jste se použít WinDbg jako klienta ladění i jako ladicí server. K navázání vzdálené relace ladění v režimu jádra můžete použít následující postup.

  1. Na hostitelském počítači otevřete WinDbg a vytvořte ladicí relaci režimu jádra s cílovým počítačem. (Podívejte se na živé ladění pomocí Kernel-Mode WinDbg (Classic).)

  2. Pro přerušení zvolte Break v nabídce Ladění nebo stiskněte kombinaci kláves CTRL-Break.

  3. Ve okně příkazů ladicího programuzadejte následující příkaz.

    .server tcp:port=5005

    Poznámka Číslo portu 5005 je libovolné. Číslo portu je vaší volbou.

  4. WinDbg odpoví výstupem podobným následujícímu.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. Na vzdáleném počítači otevřete WinDbg a v nabídce Soubor zvolte Připojit ke vzdálené relaci.

  6. V části Připojovací řetězeczadejte následující řetězec.

    tcp:Port=5005,Server=YourHostComputer

    kde YourHostComputer je název hostitelského počítače, na kterém běží ladicí server.

    Vyberte OK.

Použití příkazového řádku

Jako alternativu k postupu uvedenému v předchozí části můžete nastavit relaci vzdáleného ladění pomocí příkazového řádku. Předpokládejme, že máte nastavit relaci ladění režimu jádra mezi hostitelským počítačem a cílovým počítačem pomocí kabelu 1394 na kanál 32. Pokud chcete vytvořit vzdálenou relaci ladění, můžete použít následující postup:

  1. V hostitelském počítači zadejte do okna příkazového řádku následující příkaz.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. Na vzdáleném počítači zadejte do okna příkazového řádku následující příkaz.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    kde YourHostComputer je název hostitelského počítače, na kterém běží ladicí server.

Důležitý

Přenos 1394 je k dispozici pro použití ve Windows 10 verze 1607 a starších verzích. Není k dispozici v novějších verzích Windows. Projekty byste měli převést na jiné přenosy, například KDNET pomocí ethernetu. Další informace o tomto přenosu naleznete v tématu Nastavení ladění jádra sítě KDNET automaticky.

Další informace

Existuje mnoho způsobů, jak vytvořit vzdálené ladění jiné než ty, které jsou uvedené v tomto tématu. Úplné informace o nastavení ladicího serveru v příkazovém okně ladicího programu winDbgnaleznete v tématu .server (vytvoření ladicího serveru). Úplné informace o spuštění WinDbg (a navazování vzdáleného ladění) na příkazovém řádku naleznete v tématu WinDbg Command-Line Možnosti.