Funzionalità di debug e traccia

Windows Gli sviluppatori di applicazioni Sockets 2 devono isolare i bug in:

  • Applicazione.
  • L 'Ws2_32.dll o una delle DLL dello shim di compatibilità.
  • Provider del servizio.

Windows Sockets 2 risolve questa necessità tramite diversi componenti e funzionalità:

  • Supporto integrato per la traccia Winsock in Windows Vista e versioni successive.
  • Versione di debug appositamente concepita del Ws2_32.dllin Windows Vista.
  • Una struttura di debug e traccia primitiva separata da usare in Windows Server 2003 e Windows XP.

Traccia winsock con Traccia eventi per Windows

Il supporto integrato per la traccia Winsock usando La traccia eventi per Windows (ETW) è incluso in Windows Vista e versioni successive. Questo è il metodo preferito per la traccia delle chiamate Winsock in Windows Vista e versioni successive. La traccia Winsock con ETW è leggera e funziona sulle versioni al dettaglio di Windows. Non sono necessari componenti o software aggiuntivi. Questa funzionalità deve essere abilitata solo in Windows Vista e versioni successive. Per informazioni più dettagliate, vedere gli argomenti Di traccia Winsock .

Uso di una versione di debug di Ws2_32.dll

La combinazione di una versione di debug dell'Ws2_32.dll in Windows Vista e Winsock traccia consente a tutte le chiamate di routine nell'API Windows Sockets 2 o SPI da monitorare e, in qualche misura, controllare.

Se una versione di Microsoft Windows Software Development Kit (SDK) per Windows Vista viene installata nella posizione predefinita, le versioni di debug del Ws2_32.dll per varie architetture si trovano nella cartella seguente:

C:\Programmi\Microsoft SDK\Windows\v6.0\NoRedist

Deve essere usata una versione selezionata delWs2_32.dllcorrispondente alla versione di Windows e al Service Pack in cui si esegue il test. Tenere presente che le patch di sicurezza potrebbero essere state applicate che sono state aggiornate le Ws2_32.dll nel sistema di test. L'SDK Windows per Windows Vista e le precedenti sottoscrizioni DVD/CD (PLATFORM Software Development Kit) includono build controllate per le varie versioni di Windows. È consigliabile usare la stessa versione controllata del Ws2_32.dll della versione retail usata nel sistema da testare. Si noti anche che il comportamento in esecuzione in una compilazione controllata non sarà uguale a quello in esecuzione con una compilazione al dettaglio.

Nota L'SDK Windows per Windows Server 2008 e versioni successive non include più versioni di debug speciali del Ws2_32.dll. Gli sviluppatori devono usare la traccia Winsock usando invece ETW, poiché questa funzionalità non richiede compilazioni di debug.

Winsock Debug and Trace Facility in Windows Server 2003 e Windows XP

Le versioni precedenti di Windows prima di Windows 8 e Windows Server 2012 supportano una struttura di debug e traccia primitiva separata inclusa come esempio con l'SDK Windows e l'SDK piattaforma precedente. La struttura debug/traccia deve essere usata solo in Windows Server 2003 e Windows XP in cui la traccia Winsock non è supportata.

Se l'SDK di Windows per Windows 7 viene installato nel percorso predefinito, questa funzionalità di traccia Winsock primitiva viene installata nella cartella seguente:

C:\Programmi\Microsoft SDK\Windows\v7.0\Samples\NetDs\winsock\dt_dll

Il file DbgSpec.doc in questa cartella fornisce documentazione su questa struttura di traccia primitiva. Il codice di esempio nella cartella dt_dll deve essere compilato per usare questa struttura. Gli sviluppatori sono liberi di usare il codice sorgente per sviluppare versioni della DLL di debug/traccia che soddisfano le proprie esigenze specifiche.

Si noti che questa funzionalità di traccia Winsock primitiva funzionerà solo con la versione di debug di Ws2_32.dll installata. Sarà quindi necessario ottenere una versione selezionata delWs2_32.dllcorrispondente alla versione di Windows e al Service Pack in cui si esegue il test.

Una limitazione di questa primitiva dt_dll struttura di traccia è che il codice di esempio usa un blocco globale (sezione critica) per ogni chiamata di funzione Winsock. Quindi questa struttura non è utile per gestire le condizioni di gara. Il codice di esempio deve essere riscritto sostanzialmente per rendere questa struttura di traccia utile per gestire i problemi di Winsock più reali (sostituendo i blocchi globali). Questo codice di esempio consente agli sviluppatori di tracciare le chiamate di routine, la procedura restituisce, i valori dei parametri e i valori restituiti.

Gli sviluppatori possono usare questo meccanismo primitivo per le chiamate di routine di traccia, la procedura restituisce, i valori dei parametri e i valori restituiti. I valori dei parametri e i valori restituiti possono essere modificati nella chiamata o nella procedura restituita. Se si desidera, una chiamata di procedura può essere impedita o reindirizzata. Con l'accesso a questo livello di informazioni e controllo, uno sviluppatore è in grado di isolare un problema nell'applicazione, Ws2_32.dllo provider di servizi.

Traccia winsock