Depuración e instalaciones de seguimiento

Los desarrolladores de aplicaciones de Windows Sockets 2 deben aislar errores en:

  • Aplicación.
  • El Ws2_32.dll o uno de los archivos DLL de correcciones de compatibilidad.
  • Proveedor de servicios.

Windows Sockets 2 aborda esta necesidad a través de varios componentes y características:

  • Compatibilidad integrada con el seguimiento de Winsock en Windows Vista y versiones posteriores.
  • Una versión de depuración especialmente diseñada de la Ws2_32.dll en Windows Vista.
  • Una instalación de depuración y seguimiento primitiva independiente para su uso en Windows Server 2003 y Windows XP.

Seguimiento de Winsock mediante seguimiento de eventos para Windows

La compatibilidad integrada con el seguimiento de Winsock mediante seguimiento de eventos para Windows (ETW) se incluye en Windows Vista y versiones posteriores. Este es el método preferido para realizar el seguimiento de llamadas de Winsock en Windows Vista y versiones posteriores. El seguimiento de Winsock con ETW es ligero y funciona en versiones comerciales de Windows. No se requiere ningún software o componente adicional. Esta característica solo debe habilitarse en Windows Vista y versiones posteriores. Para obtener información más detallada, consulte los temas de seguimiento de Winsock .

Uso de una versión de depuración de Ws2_32.dll

La combinación de una versión de depuración de la Ws2_32.dll en Windows Vista y el seguimiento de Winsock permite controlar todas las llamadas a procedimientos en la API de Windows Sockets 2 o SPI y, en cierta medida, controlarse.

Si se instala una versión del Kit de desarrollo de software (SDK) de Microsoft Windows para Windows Vista en la ubicación predeterminada, las versiones de depuración del Ws2_32.dll para varias arquitecturas se encuentran en la siguiente carpeta:

C:\Archivos de programa\Microsoft SDKs\Windows\v6.0\NoRedist

Se debe usar una versión comprobada del Ws2_32.dll que coincida con la versión de Windows y el Service Pack en el que esté probando. Tenga en cuenta que es posible que se hayan aplicado revisiones de seguridad que actualicen el Ws2_32.dll en el sistema de prueba. El SDK de Windows para Windows Vista y las suscripciones de DVD/CD anteriores del Kit de desarrollo de software de plataforma (SDK) incluyen compilaciones comprobadas para las distintas versiones de Windows. Debe usar la misma versión comprobada del Ws2_32.dll que la versión comercial que se usó en el sistema que se está probando. Tenga en cuenta también que el comportamiento que se ejecuta en una compilación activada no será el mismo que ejecutar con una compilación comercial.

Nota Windows SDK para Windows Server 2008 y versiones posteriores ya no incluyen versiones de depuración especiales de la Ws2_32.dll. En su lugar, los desarrolladores deben usar el seguimiento de Winsock mediante ETW, ya que esta característica no requiere compilaciones de depuración.

Instalación de depuración y seguimiento de Winsock en Windows Server 2003 y Windows XP

Las versiones anteriores de Windows anteriores a Windows 8 y Windows Server 2012 admiten una instalación de depuración y seguimiento primitiva independiente que se incluye como ejemplo con Windows SDK y el SDK de plataforma anterior. La instalación de depuración y seguimiento solo debe usarse en Windows Server 2003 y Windows XP donde no se admite el seguimiento de Winsock.

Si windows SDK para Windows 7 está instalado en la ubicación predeterminada, esta característica de seguimiento de Winsock primitiva se instala en la carpeta siguiente:

C:\Archivos de programa\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock\dt_dll

El archivo DbgSpec.doc de esta carpeta proporciona documentación sobre esta instalación de seguimiento primitivo. El código de ejemplo de la carpeta dt_dll debe compilarse para usar esta instalación. Los desarrolladores pueden usar el código fuente para desarrollar versiones del archivo DLL de depuración y seguimiento que satisfagan sus necesidades específicas.

Tenga en cuenta que esta característica de seguimiento de Winsock primitiva solo funcionará con la versión de depuración de Ws2_32.dll instalada. Por lo tanto, deberá obtener una versión comprobada del Ws2_32.dll que coincida con la versión de Windows y el Service Pack en el que está probando.

Una limitación de este primitivo dt_dll instalación de seguimiento es que el código de ejemplo usa un bloqueo global (sección crítica) para cada llamada de función de Winsock. Por lo tanto, esta instalación no es útil para tratar con condiciones de carrera. El código de ejemplo tendría que reescribirse sustancialmente para que esta herramienta de seguimiento resulte útil para tratar con la mayoría de los problemas reales de Winsock (reemplazando los bloqueos globales). Este código de ejemplo permite a los desarrolladores realizar un seguimiento de las llamadas de procedimiento, los valores de procedimiento, los valores de parámetro y los valores devueltos.

Los desarrolladores pueden usar este mecanismo primitivo para realizar un seguimiento de las llamadas a procedimientos, los valores de procedimiento, los valores de parámetro y los valores devueltos. Los valores de parámetro y los valores devueltos se pueden modificar en la llamada al procedimiento o a la devolución del procedimiento. Si lo desea, se puede evitar o redirigir una llamada a un procedimiento. Con el acceso a este nivel de información y control, un desarrollador puede aislar mejor un problema en la aplicación, Ws2_32.dllo proveedor de servicios.

Seguimiento de Winsock