Partager via


Installations de débogage et de suivi

Les développeurs d’applications Windows Sockets 2 doivent isoler les bogues dans :

  • Application.
  • Le Ws2_32.dll ou l’une des DLL de shim de compatibilité.
  • Fournisseur de services.

Windows Sockets 2 répond à ce besoin par le biais de plusieurs composants et fonctionnalités :

  • Prise en charge intégrée du traçage 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 suivi 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 sur Windows Vista et versions ultérieures. Il s’agit de la méthode préféré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 Suivi winsock .

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 Windows Vista et le suivi 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 du 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é qui ont mis à jour le Ws2_32.dll sur votre système de test ont peut-être été appliqués. Les abonnements DVD/CD du SDK Windows pour Windows Vista et du Kit de développement logiciel (SDK) antérieurs 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 en cours de test. Notez également que le comportement s’exécutant sous une build vérifiée ne sera pas identique à l’exécution avec une build commerciale.

Note 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.

Fonctionnalité de débogage et de suivi 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 fonctionnalité de débogage et de suivi primitive distincte qui est incluse en tant qu’exemple avec le SDK Windows et l’ancien SDK platform. 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 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 dans ce dossier fournit une documentation sur cette fonctionnalité 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 devez donc obtenir une version vérifiée du Ws2_32.dll qui correspond à la version de Windows et au Service Pack sur lequel vous testez.

Une limitation de cette fonctionnalité de trace primitive dt_dll est que l’exemple de code utilise un verrou global (section critique) pour chaque appel de fonction Winsock. Cette installation n’est donc pas utile pour faire face aux conditions de course. L’exemple de code doit être considérablement réécrit pour rendre cette fonctionnalité de trace utile pour traiter la plupart des problèmes winsock réels (remplacement des 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 d’un appel de procédure ou d’un 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 est mieux en mesure d’isoler un problème dans l’application, Ws2_32.dllou le fournisseur de services.

Traçage Winsock