Hibakeresési és nyomkövetési lehetőségek
A Windows Sockets 2 alkalmazásfejlesztőinek elkülönítenie kell a hibákat a következőkben:
- Az alkalmazás.
- A Ws2_32.dll vagy a kompatibilitási shim DLL-ek egyikét.
- A szolgáltató.
A Windows Sockets 2 több összetevőn és szolgáltatáson keresztül kezeli ezt az igényt:
- A Winsock-nyomkövetés integrált támogatása Windows Vista és újabb rendszereken.
- A Windows Vista Ws2_32.dll speciálisan kifejlesztett hibakeresési verziója.
- Külön primitív hibakeresési és nyomkövetési lehetőség a Windows Server 2003 és a Windows XP rendszeren való használatra.
Winsock Tracing és Event Tracing for Windows
A Winsock-nyomkövetés windowsos eseménykövetés (ETW) használatával történő integrált támogatása Windows Vista és újabb rendszereken is elérhető. Ez az előnyben részesített módszer a Winsock-hívások nyomon követéséhez Windows Vista és újabb rendszereken. Az ETW-t használó Winsock-nyomkövetés egyszerű, és a Windows kereskedelmi verzióin működik. Nincs szükség további szoftverekre vagy összetevőkre. Ezt a funkciót csak Windows Vista és újabb rendszereken kell engedélyezni. További információkért tekintse meg a Winsock-nyomkövetés témaköröket.
A Ws2_32.dll hibakeresési verziójának használata
A Windows Vista és Winsock nyomkövetési Ws2_32.dll hibakeresési verziójának kombinációja lehetővé teszi a Windows Sockets 2 API-n vagy a SPI-n keresztüli összes eljáráshívás monitorozását és bizonyos mértékig vezérlését.
Ha a Windows Vista Rendszerhez készült Microsoft Windows Software Development Kit (SDK) egy verziója van telepítve az alapértelmezett helyre, a különböző architektúrákhoz készült Ws2_32.dll hibakeresési verziói a következő mappában találhatók:
C:\Program Files\Microsoft SDKs\Windows\v6.0\NoRedist
A windowsos verziónak és a tesztelt szervizcsomagnak megfelelő Ws2_32.dll ellenőrzött verzióját kell használni. Vegye figyelembe, hogy olyan biztonsági javításokat alkalmaztak, amelyek frissítették a tesztrendszer Ws2_32.dll. A Windows Vista Rendszerhez készült Windows SDK és a korábbi Platform Software Development Kit (SDK) DVD/CD-előfizetések a Windows különböző verzióihoz tartozó ellenőrzött buildeket tartalmazzák. A Ws2_32.dll ellenőrzött verzióját kell használnia, mint a tesztelt rendszeren használt kiskereskedelmi verziót. Vegye figyelembe azt is, hogy az ellenőrzött buildek alatt futó viselkedés nem lesz ugyanaz, mint a kiskereskedelmi buildekkel való futtatás.
Megjegyzés A Windows Server 2008 és újabb verziókhoz készült Windows SDK már nem tartalmazza a Ws2_32.dllspeciális hibakeresési verzióit. A fejlesztőknek inkább a Winsock-nyomkövetést kell használniuk az ETW használatával, mivel ez a funkció nem igényel hibakeresési buildeket.
Winsock Hibakeresési és nyomkövetési lehetőség Windows Server 2003 és Windows XP rendszeren
A Windows régebbi verziói a Windows 8 és a Windows Server 2012 előtt támogatnak egy különálló primitív hibakeresési és nyomkövetési létesítményt, amely mintaként szerepel a Windows SDK-val és a régebbi platform SDK-val. A hibakeresési/nyomkövetési létesítmény csak olyan Windows Server 2003 és Windows XP rendszeren használható, ahol a Winsock-nyomkövetés nem támogatott.
Ha a Windows 7-hez készült Windows SDK az alapértelmezett helyre van telepítve, ez a primitív Winsock nyomkövetési funkció a következő mappába van telepítve:
C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock\dt_dll
A mappában található DbgSpec.doc fájl dokumentációt nyújt erről a primitív nyomkövetési létesítményről. A dt_dll mappában lévő mintakódot a létesítmény használatához kell lefordítani. A fejlesztők szabadon használhatják a forráskódot a hibakeresési/nyomkövetési DLL azon verzióinak fejlesztéséhez, amelyek megfelelnek az igényeiknek.
Vegye figyelembe, hogy ez a primitív Winsock nyomkövetési funkció csak a telepített Ws2_32.dll hibakeresési verziójával működik. Ezért le kell kérnie a Ws2_32.dll egy ellenőrzött verzióját, amely megfelel a Windows és a tesztelt szervizcsomag verziójának.
Ennek a primitív dt_dll nyomkövetési létesítménynek az a korlátozása, hogy a mintakód egy globális zárolást (kritikus szakaszt) használ minden Winsock-függvényhíváshoz. Tehát ez a létesítmény nem hasznos a versenyfeltételek kezelésében. A mintakódot lényegesen át kell írni, hogy ez a nyomkövetési létesítmény hasznos legyen a legtöbb valós Winsock-probléma kezeléséhez (a globális zárolások cseréjéhez). Ez a mintakód lehetővé teszi a fejlesztők számára az eljáráshívások, az eljárásvisszahívások, a paraméterértékek és a visszatérési értékek nyomon követését.
A fejlesztők ezt a primitív mechanizmust használhatják az eljáráshívások, az eljárásvisszahívások, a paraméterértékek és a visszatérési értékek nyomon követésére. A paraméterértékek és a visszatérési értékek az eljáráshívás vagy az eljárás visszatérése esetén módosíthatók. Ha szükséges, az eljáráshívások megelőzhetők vagy átirányíthatók. Az ilyen szintű információkhoz és vezérléshez való hozzáféréssel a fejlesztő jobban el tudja különíteni az alkalmazás, Ws2_32.dllvagy szolgáltató problémáit.
Kapcsolódó témakörök