Instalações de depuração e rastreamento

Windows Os desenvolvedores de aplicativos sockets 2 precisam isolar bugs em:

  • O aplicativo.
  • O Ws2_32.dll ou uma das DLLs de shim de compatibilidade.
  • O provedor de serviços.

Windows Sockets 2 resolve essa necessidade por meio de vários componentes e recursos:

  • Suporte integrado para rastreamento winsock em Windows Vista e posterior.
  • Uma versão de depuração especialmente criada do Ws2_32.dll no Windows Vista.
  • Uma instalação de depuração e rastreamento primitiva separada para uso no Windows Server 2003 e Windows XP.

Rastreamento winsock usando o Rastreamento de Eventos para Windows

O suporte integrado para rastreamento winsock usando o ETW (Rastreamento de Eventos para Windows) está incluído em Windows Vista e posteriores. Este é o método preferencial para rastrear chamadas winsock em Windows Vista e posteriores. O rastreamento winsock usando ETW é leve e funciona em versões de varejo de Windows. Nenhum software ou componente adicional é necessário. Esse recurso só precisa ser habilitado em Windows Vista e posteriores. Para obter informações mais detalhadas, consulte os tópicos de Rastreamento winsock .

Usando uma versão de depuração do Ws2_32.dll

A combinação de uma versão de depuração do Ws2_32.dll no rastreamento Windows Vista e Winsock permite que todas as chamadas de procedimento na API do Windows Sockets 2 ou SPI sejam monitoradas e, até certo ponto, controladas.

Se uma versão do Microsoft Windows Software Development Kit (SDK) para Windows Vista estiver instalada no local padrão, as versões de depuração do Ws2_32.dll para várias arquiteturas estarão localizadas na seguinte pasta:

C:\Arquivos de Programas\SDKs da Microsoft\Windows\v6.0\NoRedist

Uma versão marcada do Ws2_32.dll que corresponde à versão do Windows e ao Service Pack em que você está testando deve ser usada. Lembre-se de que patches de segurança podem ter sido aplicados que atualizaram o Ws2_32.dll em seu sistema de teste. O SDK do Windows para Windows Vista e as assinaturas anteriores de DVD/CD do SDK (Platform Software Development Kit) incluem builds verificados para as várias versões do Windows. Você deve usar a mesma versão verificada do Ws2_32.dll que a versão de varejo usada no sistema que está sendo testado. Observe também que o comportamento em execução em um build verificado não será o mesmo que executar com um build de varejo.

Nota O SDK do Windows para Windows Server 2008 e posterior não inclui mais versões especiais de depuração do Ws2_32.dll. Os desenvolvedores devem usar o rastreamento winsock usando ETW, já que esse recurso não requer builds de depuração.

Instalação de depuração e rastreamento do Winsock no Windows Server 2003 e Windows XP

Versões mais antigas do Windows anteriores a Windows 8 e Windows Server 2012 dão suporte a uma instalação de depuração e rastreamento primitiva separada que está incluída como um exemplo com o SDK do Windows e o SDK da plataforma mais antigo. A instalação de depuração/rastreamento só deve ser usada no Windows Server 2003 e Windows XP em que não há suporte para o rastreamento winsock.

Se o SDK do Windows para Windows 7 estiver instalado no local padrão, esse recurso de rastreamento winsock primitivo será instalado na seguinte pasta:

C:\Arquivos de Programas\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock\dt_dll

O arquivoDbgSpec.doc nesta pasta fornece documentação sobre essa instalação de rastreamento primitivo. O código de exemplo na pasta dt_dll precisa ser compilado para usar essa instalação. Os desenvolvedores são livres para usar o código-fonte para desenvolver versões da DLL de depuração/rastreamento que atendam às suas necessidades específicas.

Observe que esse recurso de rastreamento winsock primitivo só funcionará com a versão de depuração de Ws2_32.dll instalada. Portanto, você precisará obter uma versão verificada do Ws2_32.dll que corresponda à versão do Windows e ao Service Pack em que você está testando.

Uma limitação dessa instalação primitiva de rastreamento dt_dll é que o código de exemplo usa um bloqueio global (seção crítica) para cada chamada de função Winsock. Portanto, esta instalação não é útil para lidar com as condições de corrida. O código de exemplo precisaria ser substancialmente reescrito para tornar essa instalação de rastreamento útil para lidar com a maioria dos problemas reais do Winsock (substituindo os bloqueios globais). Esse código de exemplo permite que os desenvolvedores rastreiem as chamadas de procedimento, os retornos do procedimento, os valores dos parâmetros e os valores retornados.

Os desenvolvedores podem usar esse mecanismo primitivo para rastrear chamadas de procedimento, retornos de procedimento, valores de parâmetro e valores de retorno. Valores de parâmetro e valores retornados podem ser alterados na chamada de procedimento ou no retorno do procedimento. Se desejar, uma chamada de procedimento poderá ser impedida ou redirecionada. Com acesso a esse nível de informações e controle, um desenvolvedor é mais capaz de isolar um problema no aplicativo, Ws2_32.dllou no provedor de serviços.

Rastreamento winsock