Nastavení ladění v režimu jádra USB 3.0 xHCI (KDUSB xHCI-DBC USB 3.0)

Nástroje ladění pro Windows podporují ladění v režimu jádra přes kabel USB 3.0. Tento článek popisuje, jak ručně nastavit ladění rozhraní USB 3.0.

Počítač, na kterém je spuštěn ladicí program, se nazývá hostitelský počítača laděný počítač se nazývá cílový počítač.

Ladění přes kabel USB 3.0 vyžaduje následující hardware:

  • Na hostitelském počítači je hostitelský řadič xHCI (USB 3.0)
  • Na cílovém počítači je hostitelský kontroler xHCI (USB 3.0), který podporuje ladění.
  • Hostitelský řadič USB cílového počítače musí podporovat rozhraní DBC (Intel xHCI-Debug Capability Interface). Další informace najdete ve specifikaci xHCI, která je k dispozici na webu Intel.

Požadavky na kabel

  • Oranžový ladicí kabel Microsoft USB, což je křížový kabel A-A, který má dva konektory typu A a žádné připojení Vbus. Tento kabel je k dispozici od dodavatelů, jako je DataPro - USB 3.0 Super-Speed A/A diagnostický kabel.

Pokud chcete zjednodušit řešení potíží, připojte kabel přímo mezi cílovým a hostitelským počítačem, abyste se vyhnuli rozbočovačům nebo dokovacím stanicím.

Binární přenosové soubory

kdstub.dll se používá pro podporu transportu ladicího nástroje KDUSB xHCI-DBC USB 3.0.

Nastavení cílového počítače

  1. Na cílovém počítači spusťte nástroj UsbView . Nástroj UsbView je součástí nástrojů ladění pro Windows. UsbView by byl pro systém x64 umístěn v C:\Program Files (x86)\Windows Kits\10\Tools\kitversion\x64\usbview.exe.

  2. V UsbView vyhledejte všechny řadiče hostitele xHCI.

  3. V UsbView rozbalte uzly hostitelských řadičů xHCI. Vyhledejte indikaci, že port na řadiči hostitele podporuje ladění.

    [Port1]
    
    Is Port User Connectable:         yes
    Is Port Debug Capable:            yes
    Companion Port Number:            3
    Companion Hub Symbolic Link Name: USB#ROOT_HUB30#5&32bab638&0&0#{...}
    Protocols Supported:
     USB 1.1:                         no
     USB 2.0:                         no
     USB 3.0:                         yes
    
  4. Poznamenejte si čísla sběrnice, zařízení a funkcí pro kontroler xHCI, který chcete použít k ladění. UsbView zobrazí tato čísla. V následujícím příkladu je číslo sběrnice 48, číslo zařízení je 0 a číslo funkce je 0.

    USB xHCI Compliant Host Controller
    ...
    DriverKey: {36fc9e60-c465-11cf-8056-444553540000}\0020
    ...
    Bus.Device.Function (in decimal): 48.0.0
    
  5. Po identifikaci kontroleru xHCI, který podporuje ladění, je dalším krokem vyhledání fyzického konektoru USB, který je přidružený k portu na řadiči xHCI. Pokud chcete najít fyzický konektor, zapojte jakékoli zařízení USB 3.0 do jakéhokoli konektoru USB na cílovém počítači. Aktualizujte UsbView, abyste viděli, kde se nachází vaše zařízení. Pokud UsbView zobrazí vaše zařízení připojené k zvolenému hostitelskému řadiči xHCI, našli jste fyzický konektor USB, který můžete použít pro ladění USB 3.0.

Důležité

Před změnou bcdedit informací o spuštění může být nutné dočasně pozastavit funkce zabezpečení systému Windows, jako je BitLocker a Zabezpečené spouštění na testovacím počítači. Po dokončení testování znovu povolte tyto funkce zabezpečení a odpovídajícím způsobem spravujte testovací počítač, když jsou funkce zabezpečení zakázané.

  1. Na cílovém počítači otevřete okno příkazového řádku jako správce a zadejte tyto příkazy:

    bcdedit /debug on
    bcdedit /dbgsettings usb targetname:<TargetName>
    

    TargetName je název, který vytvoříte pro cílový počítač. Všimněte si, že TargetName nemusí být oficiálním názvem cílového počítače; Může se jednat o libovolný řetězec, který vytvoříte, pokud splňuje tato omezení:

    • Řetězec nesmí obsahovat "debug" v žádné části TargetName, bez ohledu na použití velkých nebo malých písmen. Pokud například použijete "DeBuG" nebo "DEBUG" kdekoli v cílovém názvu, ladění nefunguje správně.
    • Jedinými znaky v řetězci jsou pomlčka (-), podtržítko(_), číslice 0 až 9 a písmena A až Z (velká nebo malá písmena).
    • Maximální délka řetězce je 24 znaků.
  2. Ve Správci zařízení vyhledejte kontroler USB, který chcete použít k ladění. V části Umístění na kartě Obecné se zobrazí čísla sběrnice, zařízení a funkcí. Zadejte tento příkaz:

    bcdedit /set "{dbgsettings}" busparams <b.d.f>
    

    B, d a f jsou čísla sběrnice, zařízení a funkce pro hostitelský řadič USB. Čísla sběrnice, zařízení a funkce musí být v desítkovém formátu.

    Příklad:

    bcdedit /set "{dbgsettings}" busparams 48.0.0
    
  3. Restartujte cílový počítač.

Zakázání řízení spotřeby

V některých případech můžou přechody napájení kolidovat s laděním přes USB 3.0. Pokud se chcete těmto problémům vyhnout, zakažte selektivní uspání hostitelského řadiče xHCI a jeho kořenového rozbočovače, které používáte k ladění.

  1. Ve Správci zařízení přejděte na uzel řadiče hostitele xHCI. Klikněte pravým tlačítkem myši na uzel a zvolte Vlastnosti. Pokud je karta Řízení spotřeby , otevřete kartu a zrušte zaškrtnutí políčka Povolit počítači vypnout toto zařízení, aby se ušetřilo napájení .

  2. Ve Správci zařízení přejděte na uzel kořenového centra řadiče hostitele xHCI. Klikněte pravým tlačítkem myši na uzel a zvolte Vlastnosti. Pokud je karta Řízení spotřeby , otevřete kartu a zrušte zaškrtnutí políčka Povolit počítači vypnout toto zařízení, aby se ušetřilo napájení .

Po dokončení použití hostitelského kontroleru xHCI pro ladění znovu povolte selektivní pozastavení řadiče hostitele xHCI.

Spusťte ladicí relaci poprvé

  1. Připojte ladicí kabel USB 3.0 k portům USB 3.0, které jste zvolili pro ladění na hostitelských a cílových počítačích.
  2. Určete bitovou verzi systému Windows (32bitovou nebo 64bitovou) spuštěnou na hostitelském počítači.
  3. Na hostitelském počítači otevřete verzi WinDbg (jako správce), která odpovídá bitové verzi Systému Windows spuštěné na hostitelském počítači. Pokud například na hostitelském počítači běží 64bitová verze Windows, otevřete 64bitovou verzi WinDbg jako správce.
  4. V nabídce Soubor zvolte Ladění jádra. V dialogovém okně Ladění jádra otevřete kartu USB . Zadejte cílový název, který jste vytvořili při nastavování cílového počítače. Klikněte na OK.

V tomto okamžiku se ovladač ladění USB nainstaluje do hostitelského počítače, což je důvod, proč je nutné sladit bitovou verzi WinDbg s bitovou verzí systému Windows. Po instalaci ovladače ladění USB můžete použít 32bitovou nebo 64bitovou verzi WinDbg pro následné ladicí relace.

Zahajte ladicí relaci

Použití WinDbg

Na hostitelském počítači otevřete WinDbg. V nabídce Soubor zvolte Ladění jádra. V dialogovém okně Ladění jádra otevřete kartu USB . Zadejte cílový název, který jste vytvořili při nastavování cílového počítače. Vyberte OK.

Relaci s WinDbg můžete také spustit zadáním následujícího příkazu v okně příkazového řádku, kde TargetName je cílový název, který jste vytvořili při nastavování cílového počítače:

windbg /k usb:targetname=<TargetName>

Použití KD

Na hostitelském počítači otevřete okno příkazového řádku a zadejte následující příkaz, kde TargetName je cílový název, který jste vytvořili při nastavování cílového počítače:

kd /k usb:targetname=<TargetName>

Restartování cílového počítače

Po připojení debuggeru restartujte cílový počítač. Jedním ze způsobů, jak počítač restartovat, je použít příkaz #D0 z příkazového řádku správce.

Po restartování cílového počítače by se ladicí program měl automaticky připojit.

Řešení problémů

Nerozpoznané zařízení USB

Pokud se na hostitelském zařízení při vložení ladicího kabelu zobrazí oznámení Windows s textem USB zařízení nebylo rozpoznáno, je možné, že došlo ke známému problému s kompatibilitou USB 3.1 mezi zařízeními. Tento problém se týká konfigurací ladění, když je ladicí kabel připojený k řadiči USB 3.1 na hostiteli a řadiči USB 3.1 Intel (Ice Lake nebo Tiger Lake) na cílovém zařízení.

Další informace a výpisy modelů procesoru najdete v tématu Ice Lake (mikroprocesor) a Tiger Lake (mikroprocesor). Pokud chcete najít model procesoru cílového počítače, otevřete aplikaci Nastavení a přejděte do části Systém a potom Informace. Procesor je uvedený ve specifikacích zařízení.

Chcete-li ověřit tento problém, otevřete Správce zařízení a vyhledejte zařízení pro ladění USB v sekci Řadiče univerzální sériové sběrnice. Pokud se toto zařízení nenašlo, zkontrolujte v části Jiná zařízeníneznámé zařízení. Kliknutím pravým tlačítkem myši na zařízení otevřete stránku vlastností. Textové pole stavu zařízení bude obsahovat text Systém Windows zastavil toto zařízení, protože nahlásilo problémy (Kód 43) a zařízení USB vrátilo neplatný popisovač USB BOS.

Chcete-li tento problém vyřešit, spusťte tyto příkazy z příkazového řádku správce a proveďte změny registru:

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\349500E00000 /v SkipBOSDescriptorQuery /t REG_DWORD /d 1 /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\045E06560000 /v SkipBOSDescriptorQuery /t REG_DWORD /d 1 /f

Potom odstraňte a znovu vložte ladicí kabel.

Zprávy o znovupokusích o připojení v oknech konzole debuggeru a nelze proniknout do cíle — SkipPciProbeDebugDevice

Pokud v konzole ladicího programu KDNET narazíte na následující zprávu, nelze iniciovat přerušení cílového zařízení nebo dojde k problémům s určitými příkazy (např. kdfiles), příčinou může být přijetí paketu ping mimo pořadí.

... Retry sending the same data packet for 128 times.

The transport connection between host kernel debugger and target Windows seems lost.
please try resync with target, recycle the host debugger, or reboot the target Windows.

K tomuto problému může dojít, protože ovladač pci.sys nesprávně testuje ladicí zařízení. Pokud chcete chyby odstranit, vytvořte na příkazovém řádku správce následující položku registru na zařízení TARGET.

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\SERVICES\kdnet /v SkipPciProbeDebugDevice /t REG_DWORD /d 1 /f

Pak restartujte cílový počítač.

shutdown /r /t 0

Jakmile se zařízení restartuje, měly by chyby zmizet a příkazy by měly fungovat podle očekávání.

Viz také

Ruční nastavení ladění v režimu jádra

Nastavení ladění síťového jádra KDNET automaticky

#B0 Ruční nastavení síťového ladění jádra KDNET #C1

Nastavení USB KDNET EEM Kernel-Mode pro ladění (KDNET-EEM-USB)

Nastavení ladění KDNET v režimu jádra přes USB (KDNET-USB)