Compartilhar via


Instalações de depuração e rastreamento

Os desenvolvedores de aplicativos do Windows 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.

O Windows Sockets 2 atende a essa necessidade por meio de vários componentes e recursos:

  • Suporte integrado para rastreamento winsock no Windows Vista e posterior.
  • Uma versão de depuração especialmente elaborada do Ws2_32.dll no Windows Vista.
  • Um recurso de depuração e rastreamento primitivo separado para uso no Windows Server 2003 e no Windows XP.

Rastreamento do 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 no Windows Vista e posterior. Esse é o método preferencial para rastrear chamadas winsock no Windows Vista e posteriores. O rastreamento winsock usando ETW é leve e funciona em versões de varejo do Windows. Nenhum software ou componente adicional é necessário. Esse recurso só precisa ser habilitado no Windows Vista e posterior. Para obter informações mais detalhadas, consulte os tópicos de de Rastreamento do Winsock do.

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 do 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\Microsoft SDKs\Windows\v6.0\NoRedist

Uma versão marcada do Ws2_32.dll que corresponde à versão do Windows e do Service Pack em que você está testando deve ser usada. Lembre-se de que os 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 do 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.

Observação 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 no Windows XP

As versões mais antigas do Windows antes do Windows 8 e do Windows Server 2012 dão suporte a uma instalação de depuração e rastreamento primitiva separada que é 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 no Windows XP, em que não há suporte para o rastreamento do Winsock.

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

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

O arquivo DbgSpec.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 do Service Pack em que você está testando.

Uma limitação dessa instalação primitiva de rastreamento de dt_dll é que o código de exemplo usa um bloqueio global (seção crítica) para cada chamada de função Winsock. Portanto, essa 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 retornados. Valores de parâmetro e valores retornados podem ser alterados na chamada de procedimento ou no retorno do procedimento. Se desejado, uma chamada de procedimento pode ser impedida ou redirecionada. Com o acesso a esse nível de informações e controle, um desenvolvedor é mais capaz de isolar um problema no aplicativo, Ws2_32.dllou provedor de serviços.

de Rastreamento winsock