디버그 및 추적 기능

Windows 소켓 2 응용 프로그램 개발자는 다음과 같은 버그를 격리 해야 합니다.

  • 애플리케이션입니다.
  • Ws2 _32.dll 또는 호환성 shim dll 중 하나입니다.
  • 서비스 공급자입니다.

Windows 소켓 2는 다음과 같은 몇 가지 구성 요소 및 기능을 통해 이러한 필요성을 해결 합니다.

  • Windows Vista 이상에서 Winsock 추적을 통합 하 여 지원 합니다.
  • Windows Vista에서 Ws2 _32.dll 의 특별히 고안 된 디버그 버전입니다.
  • Windows Server 2003 및 Windows XP에서 사용할 별도의 기본 디버그 및 추적 기능입니다.

ETW(Windows용 이벤트 추적)를 사용한 Winsock 추적

ETW(Windows용 이벤트 추적) (ETW)를 사용한 Winsock 추적에 대 한 통합 지원은 Windows Vista 이상에 포함 되어 있습니다. 이는 Windows Vista 이상에서 Winsock 호출을 추적 하는 데 선호 되는 방법입니다. ETW를 사용한 Winsock 추적은 경량 이며 Windows의 일반 정품 버전에서 작동 합니다. 추가 소프트웨어 또는 구성 요소가 필요 하지 않습니다. 이 기능은 Windows Vista 이상 에서만 사용 하도록 설정 해야 합니다. 자세한 내용은 Winsock 추적 항목을 참조 하세요.

Ws232.dll의 디버그 버전 사용 _

Windows Vista 및 Winsock 추적에 Ws2 _32.dll 디버그 버전을 조합 하면 Windows 소켓 2 API 또는 SPI의 모든 프로시저 호출이 모니터링 되 고 일부 범위에서 제어 됩니다.

Windows Vista 용 Microsoft Windows SDK (소프트웨어 개발 키트) 버전이 기본 위치에 설치 되어 있는 경우 다양 한 아키텍처에 대 한 Ws2 _32.dll 의 디버그 버전이 다음 폴더 아래에 있습니다.

C: \ Program Files \ Microsoft sdk \ Windows \ v 6.0 \ NoRedist

Windows 버전 및 테스트 중인 서비스 팩과 일치 하는 Ws2 _32.dll 의 확인 된 버전을 사용 해야 합니다. 테스트 시스템에서 Ws2 _32.dll 를 업데이트 한 보안 패치가 적용 되었을 수 있습니다. Windows Vista 및 이전 플랫폼 SDK (소프트웨어 개발 키트) DVD/CD 구독에 대 한 Windows SDK에는 다양 한 버전의 Windows에 대 한 선택 된 빌드가 포함 되어 있습니다. 테스트 중인 시스템에서 사용 된 일반 정품 버전으로 Ws2 _32.dll 의 확인 된 버전을 사용 해야 합니다. 또한 확인 된 빌드에서 실행 되는 동작은 소매점 빌드를 실행 하는 것과 동일 하지 않습니다.

참고 Windows Server 2008 이상에 대 한 Windows SDK에는 Ws2 _32.dll 의 특수 디버그 버전이 더 이상 포함 되지 않습니다. 이 기능에는 디버그 빌드가 필요 하지 않으므로 개발자는 대신 ETW를 사용 하 여 Winsock 추적을 사용 해야 합니다.

Windows Server 2003 및 Windows XP의 Winsock 디버그 및 추적 기능

Windows 8 및 Windows Server 2012 이전 Windows 이전 버전은 Windows SDK 및 이전 플랫폼 SDK를 사용 하 여 샘플로 포함 된 별도의 기본 디버그 및 추적 기능을 지원 합니다. 디버그/추적 기능은 Winsock 추적이 지원 되지 않는 Windows Server 2003 및 Windows XP 에서만 사용 해야 합니다.

Windows 7에 대 한 Windows SDK 기본 위치에 설치 된 경우이 기본 Winsock 추적 기능은 다음 폴더에 설치 됩니다.

C: \ Program Files \ Microsoft sdk \ Windows v2.0 \ \ 샘플 \ netds \ winsock \ dt _ dll

이 폴더의 DbgSpec.doc 파일은이 기본 추적 기능에 대 한 설명서를 제공 합니다. _이 기능을 사용 하려면 dt dll 폴더의 샘플 코드를 컴파일해야 합니다. 개발자는 소스 코드를 사용 하 여 특정 요구 사항을 충족 하는 디버그/추적 DLL 버전을 개발할 수 있습니다.

이 기본 Winsock 추적 기능은 설치 된 Ws2 _32.dll 의 디버그 버전 에서만 작동 합니다. 따라서 테스트 중인 Windows 버전 및 서비스 팩과 일치 하는 Ws2 _32.dll 의 확인 된 버전을 받아야 합니다.

이 기본 dt _ dll 추적 기능의 제한은 샘플 코드가 각 Winsock 함수 호출에 대해 전역 잠금 (임계 영역)을 사용 한다는 것입니다. 따라서이 기능은 경합 상태를 처리 하는 데 유용 하지 않습니다. 이 추적 기능을 사용 하면 대부분의 실제 Winsock 문제를 처리 하는 데 유용 하 게 사용할 수 있도록 샘플 코드를 크게 다시 작성 해야 합니다 (전역 잠금 대체). 이 샘플 코드를 통해 개발자는 프로시저 호출, 프로시저 반환, 매개 변수 값 및 반환 값을 추적할 수 있습니다.

개발자는이 기본 메커니즘을 사용 하 여 프로시저 호출, 프로시저 반환, 매개 변수 값 및 반환 값을 추적할 수 있습니다. 프로시저 호출 또는 프로시저 반환에서 매개 변수 값 및 반환 값을 변경할 수 있습니다. 원할 경우 프로시저 호출을 방지 하거나 리디렉션할 수 있습니다. 개발자는 이러한 수준의 정보와 제어에 액세스할 수 있으므로 응용 프로그램, Ws2 _32.dll 또는 서비스 공급자의 문제를 보다 잘 격리할 수 있습니다.

Winsock 추적