Средства отладки и трассировки

Windows Разработчикам приложений для сокетов 2 необходимо изолировать ошибки в:

  • Приложение.
  • _32.dllWs2 или одна из библиотек DLL оболочки совместимости.
  • Поставщик службы.

Windows Сокеты 2 разрешает эту потребность с помощью нескольких компонентов и функций:

  • интегрированная поддержка трассировки Winsock в Windows Vista и более поздних версиях.
  • специально исправленная отладочная версия _32.dllWs2 на Windows Vista.
  • отдельные простые средства отладки и трассировки для использования на Windows Server 2003 и Windows XP.

Трассировка Winsock с использованием трассировки событий для Windows

интегрированная поддержка трассировки Winsock с помощью трассировки событий для Windows (ETW) включена в Windows Vista и более поздних версиях. это предпочтительный метод трассировки вызовов Winsock в Windows Vista и более поздних версиях. Трассировка Winsock с использованием ETW является облегченной и работает в розничных версиях Windows. Дополнительное программное обеспечение или компоненты не требуются. эту функцию нужно включить только в Windows Vista и более поздних версиях. Дополнительные сведения см. в разделах, посвященных трассировке Winsock .

Использование отладочной версии Ws2 _32.dll

сочетание отладочной версии _32.dllWs2 в Windows Vista и трассировке Winsock позволяет отслеживать все вызовы процедур через API-интерфейсы Windows сокетов 2 или SPI и, в некоторой степени, контролировать.

если версия пакета средств разработки Microsoft Windows Software Development Kit (SDK) для Windows Vista устанавливается в расположение по умолчанию, отладочные версии _32.dllWs2 для различных архитектур находятся в следующей папке:

C: \ Program files \ Microsoft sdks \ Windows \ версии 6.0 \ норедист

следует использовать проверенную версию _32.dllWs2 , соответствующую версии Windows и пакета обновления, на котором выполняется тестирование. Имейте в виду, что были применены исправления безопасности, обновленные _32.dllWs2 в тестовой системе. Windows SDK для Windows Vista и более ранних подписок DVD/CD пакета средств разработки программного обеспечения платформы (SDK) включает проверенные сборки для различных версий Windows. Следует использовать ту же проверенную версию Ws2 _32.dll в качестве розничной версии, которая использовалась в тестируемой системе. Обратите внимание, что поведение, выполняемое в проверенной сборке, не будет совпадать с запуском в розничной сборке.

Примечание . Windows SDK для Windows Server 2008 и более поздних версий больше не включает специальные отладочные версии _32.dllWs2. Вместо этого для разработчиков следует использовать трассировку Winsock с помощью ETW, так как эта функция не требует отладочных сборок.

отладка и трассировка Winsock на Windows Server 2003 и Windows XP

более старые версии Windows до Windows 8 и Windows Server 2012 поддерживают отдельное средство отладки и трассировки, которое входит в состав примера с Windows SDK и более старым пакетом SDK платформы. средство отладки и трассировки следует использовать только на серверах Windows 2003 и Windows XP, где трассировка Winsock не поддерживается.

если Windows SDK для Windows 7 установлен в расположение по умолчанию, эта функция трассировки Winsock устанавливается в следующую папку:

C: \ Program files \ Microsoft sdks \ Windows \ v 7.0 \ samples \ нетдс \ winsock \ dt _ dll

Файл DbgSpec.doc в этой папке содержит документацию по этому примитиву трассировки. Пример кода в _ папке DLL DT должен быть скомпилирован для использования этого средства. Разработчики могут использовать исходный код для разработки версий библиотеки DLL отладки и трассировки, которые отвечают определенным потребностям.

Обратите внимание, что этот примитив функции трассировки Winsock будет работать только с отладочной версией Ws2 _32.dll установлен. поэтому необходимо получить установленную версию Ws2 _32.dll , соответствующую версии Windows и пакета обновления, на котором выполняется тестирование.

Ограничение этого примитива _ трассировки DLL-библиотеки DT состоит в том, что в примере кода используется глобальная блокировка (критический раздел) для каждого вызова функции Winsock. Поэтому этот механизм не полезен при работе с условиями гонки. Пример кода должен быть значительно переписан, чтобы сделать этот механизм трассировки полезным для решения большинства реальных проблем с Winsock (замена глобальных блокировок). Этот пример кода позволяет разработчикам отслеживать вызовы процедур, возвраты процедур, значения параметров и возвращаемые значения.

Разработчики могут использовать этот механизм примитива для трассировки вызовов процедур, возврата процедур, значений параметров и возвращаемых значений. Значения параметров и возвращаемые значения можно изменить при вызове процедуры или возврате процедуры. При необходимости вызов процедуры можно запретить или перенаправить. Благодаря доступу к этому уровню информации и контроля разработчик лучше может изолировать проблему в приложении, Ws2 _32.dll или поставщике услуг.

Трассировка Winsock