Sdílet prostřednictvím


Ladění a trasování – zařízení

Vývojáři aplikací windows Sockets 2 potřebují izolovat chyby v:

  • Aplikace.
  • Ws2_32.dll nebo některé z knihoven DLL pro kompatibilitu.
  • Poskytovatel služeb.

Windows Sockets 2 řeší tuto potřebu prostřednictvím několika komponent a funkcí:

  • Integrovaná podpora trasování winsock v systému Windows Vista a novějších verzích.
  • Speciálně navržená ladicí verze Ws2_32.dll v systému Windows Vista.
  • Samostatné primitivní zařízení pro ladění a trasování pro použití v systémech Windows Server 2003 a Windows XP.

Trasování rozhraní Winsock s využitím trasování událostí pro Windows

Integrovaná podpora trasování winsock pomocí trasování událostí pro Windows (ETW) je součástí systému Windows Vista a novější. Toto je upřednostňovaná metoda trasování volání Winsock v systému Windows Vista a novější. Trasování rozhraní Winsock pomocí Trasování událostí pro Windows je jednoduché a funguje v maloobchodních verzích Windows. Nevyžaduje se žádný další software ani komponenty. Tato funkce musí být povolena pouze v systému Windows Vista a novějších verzích. Podrobnější informace najdete v tématech trasování rozhraní Winsock.

Použití ladicí verze Ws2_32.dll

Kombinace ladicí verze Ws2_32.dll v systému Windows Vista a trasování Winsock umožňuje všechna volání procedur napříč rozhraním API windows Sockets 2 nebo rozhraním SPI, které se mají monitorovat a do určité míry řídit.

Pokud je verze sady Microsoft Windows Software Development Kit (SDK) pro Systém Windows Vista nainstalována do výchozího umístění, ladicí verze Ws2_32.dll pro různé architektury se nacházejí v následující složce:

C:\Program Files\Microsoft SDKs\Windows\v6.0\NoRedist

Měla by se použít ověřená verze Ws2_32.dll, která odpovídá verzi systému Windows a aktualizaci Service Pack, na které testujete. Mějte na paměti, že opravy zabezpečení mohly být použity, které aktualizovaly Ws2_32.dll ve vašem testovacím systému. Předplatná DVD/CD sady Windows SDK pro Windows Vista a starší verze sady SDK (Platform Software Development Kit) zahrnují kontrolované buildy pro různé verze Windows. Měli byste použít stejnou ověřenou verzi Ws2_32.dll jako prodejní verzi, která byla použita v otestovaném systému. Všimněte si také, že chování spuštěné pod kontrolou sestavení nebude stejné jako při spuštění s maloobchodním buildem.

Poznámka Sada Windows SDK pro Windows Server 2008 a novější již neobsahuje speciální ladicí verze Ws2_32.dll. Vývojáři by měli místo toho použít trasování Winsock pomocí trasování událostí pro Windows, protože tato funkce nevyžaduje sestavení ladění.

Rozhraní Winsock Debug and Trace Facility v systémech Windows Server 2003 a Windows XP

Starší verze Windows před Windows 8 a Windows Serverem 2012 podporují samostatnou primitivní ladicí a trasovací zařízení, která je součástí ukázky se sadou Windows SDK a starší sadou SDK platformy. Ladicí/trasovací zařízení by se mělo používat pouze v systémech Windows Server 2003 a Windows XP, kde trasování rozhraní Winsock není podporováno.

Pokud je sada Windows SDK pro Windows 7 nainstalována do výchozího umístění, je tato primitivní funkce trasování winsock nainstalována v následující složce:

C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock\dt_dll

Soubor DbgSpec.doc v této složce poskytuje dokumentaci k tomuto primitivnímu trasovacímu zařízení. Vzorový kód ve složce dt_dll musí být zkompilován pro použití tohoto zařízení. Vývojáři mohou používat zdrojový kód k vývoji verzí knihovny DLL ladění/trasování, které splňují jejich konkrétní potřeby.

Všimněte si, že tato primitivní funkce trasování Winsock bude fungovat pouze s nainstalovanou ladicí verzí Ws2_32.dll. Proto budete muset získat ověřenou verzi Ws2_32.dll, která odpovídá verzi systému Windows a aktualizaci Service Pack, na které testujete.

Omezení této primitivní dt_dll trasovací zařízení spočívá v tom, že vzorový kód používá pro každé volání funkce Winsock globální zámek (kritický oddíl). Takže toto zařízení není užitečné při řešení podmínek závodu. Vzorový kód by se muset podstatně přepsat, aby toto trasovací zařízení bylo užitečné pro řešení většiny skutečných problémů winsock (nahrazení globálních zámků). Tento ukázkový kód umožňuje vývojářům trasovat volání procedur, vrácení procedury, hodnoty parametrů a návratové hodnoty.

Vývojáři můžou tento primitivní mechanismus použít ke sledování volání procedur, vrácení procedury, hodnot parametrů a návratových hodnot. Hodnoty parametrů a návratové hodnoty lze změnit při volání procedury nebo vrácení procedury. V případě potřeby může být volání procedury zabráněno nebo přesměrováno. S přístupem k této úrovni informací a řízení je vývojář lépe schopen izolovat problém v aplikaci, Ws2_32.dllnebo poskytovatele služeb.

trasování rozhraní Winsock