Déboguer et tracer les installations
Les développeurs d’applications Windows Sockets 2 doivent isoler les bogues dans :
- Application.
- L'Ws2_32.dll ou l’une des DLL de shim de compatibilité.
- Fournisseur de services.
Windows Sockets 2 répond à ce besoin via plusieurs composants et fonctionnalités :
- Prise en charge intégrée du suivi Winsock sur Windows Vista et versions ultérieures.
- Une version de débogage spécialement conçue du Ws2_32.dll sur Windows Vista.
- Une fonctionnalité de débogage et de trace primitive distincte à utiliser sur Windows Server 2003 et Windows XP.
Suivi Winsock à l’aide du suivi d’événements pour Windows
La prise en charge intégrée du suivi Winsock à l’aide du suivi d’événements pour Windows (ETW) est incluse dans Windows Vista et versions ultérieures. Il s’agit de la méthode recommandée pour le suivi des appels Winsock sur Windows Vista et versions ultérieures. Le suivi Winsock à l’aide d’ETW est léger et fonctionne sur les versions commerciales de Windows. Aucun logiciel ou composant supplémentaire n’est requis. Cette fonctionnalité doit simplement être activée sur Windows Vista et versions ultérieures. Pour plus d’informations, consultez les rubriques Winsock Tracing.
Utilisation d’une version de débogage de Ws2_32.dll
La combinaison d’une version de débogage de l'Ws2_32.dll sur le suivi Windows Vista et Winsock permet à tous les appels de procédure sur l’API Windows Sockets 2 ou SPI d’être surveillés et, dans une certaine mesure, contrôlés.
Si une version du Kit de développement logiciel (SDK) Microsoft Windows pour Windows Vista est installée à l’emplacement par défaut, les versions de débogage de l'Ws2_32.dll pour différentes architectures se trouvent sous le dossier suivant :
C :\Program Files\Microsoft SDKs\Windows\v6.0\NoRedist
Une version vérifiée du Ws2_32.dll qui correspond à la version de Windows et au Service Pack sur lequel vous testez doit être utilisée. N’oubliez pas que des correctifs de sécurité ont peut-être été appliqués qui ont mis à jour la Ws2_32.dll sur votre système de test. Le Kit de développement logiciel (SDK) Windows pour Windows Vista et les abonnements DVD/CD du Kit de développement logiciel (SDK) précédents incluent des builds vérifiées pour les différentes versions de Windows. Vous devez utiliser la même version vérifiée du Ws2_32.dll que la version commerciale utilisée sur le système testé. Notez également que le comportement exécuté sous une build vérifiée ne sera pas le même que l’exécution avec une build de vente au détail.
Remarque Le Kit de développement logiciel (SDK) Windows pour Windows Server 2008 et versions ultérieures n’inclut plus de versions de débogage spéciales du Ws2_32.dll. Les développeurs doivent utiliser le suivi Winsock à l’aide d’ETW à la place, car cette fonctionnalité ne nécessite pas de builds de débogage.
Installation de débogage et de trace Winsock sur Windows Server 2003 et Windows XP
Les anciennes versions de Windows antérieures à Windows 8 et Windows Server 2012 prennent en charge une installation de débogage et de trace primitive distincte qui est incluse comme exemple avec le Kit de développement logiciel (SDK) Windows et le SDK de plateforme plus ancien. La fonctionnalité de débogage/trace ne doit être utilisée que sur Windows Server 2003 et Windows XP où le suivi Winsock n’est pas pris en charge.
Si le Kit de développement logiciel (SDK) Windows pour Windows 7 est installé à l’emplacement par défaut, cette fonctionnalité de suivi Winsock primitive est installée dans le dossier suivant :
C :\Program Files\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock\dt_dll
Le fichier DbgSpec.doc de ce dossier fournit de la documentation sur cette installation de trace primitive. L’exemple de code dans le dossier dt_dll doit être compilé pour utiliser cette fonctionnalité. Les développeurs sont libres d’utiliser le code source pour développer des versions de la DLL de débogage/trace qui répondent à leurs besoins spécifiques.
Notez que cette fonctionnalité de trace Winsock primitive fonctionne uniquement avec la version de débogage de Ws2_32.dll installée. Vous devrez donc obtenir une version vérifiée de l'Ws2_32.dll qui correspond à la version de Windows et au Service Pack sur lequel vous effectuez des tests.
Une limitation de cette installation de trace primitive dt_dll est que l’exemple de code utilise un verrou global (section critique) pour chaque appel de fonction Winsock. Ainsi, cette installation n’est pas utile pour traiter les conditions de concurrence. L’exemple de code doit être considérablement réécrit pour rendre cette installation de trace utile pour traiter la plupart des problèmes Winsock réels (en remplaçant les verrous globaux). Cet exemple de code permet aux développeurs de suivre les appels de procédure, les retours de procédure, les valeurs de paramètre et les valeurs de retour.
Les développeurs peuvent utiliser ce mécanisme primitif pour suivre les appels de procédure, les retours de procédure, les valeurs de paramètre et les valeurs de retour. Les valeurs de paramètre et les valeurs de retour peuvent être modifiées lors de l’appel de procédure ou du retour de procédure. Si vous le souhaitez, un appel de procédure peut être empêché ou redirigé. Avec l’accès à ce niveau d’informations et de contrôle, un développeur peut mieux isoler un problème dans l’application, Ws2_32.dllou fournisseur de services.
Rubriques connexes