Поделиться через


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

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

  • Приложение.
  • Ws2_32.dll или один из библиотек DLL-библиотек совместимости.
  • Поставщик услуг.

Сокеты Windows 2 предназначены для работы с несколькими компонентами и функциями.

  • Встроенная поддержка трассировки Winsock в Windows Vista и более поздних версиях.
  • Специально разработанная отладочная версия Ws2_32.dll в 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

Сочетание отладочной версии Ws2_32.dll в Windows Vista и Трассировке Winsock позволяет отслеживать все вызовы процедур в API сокетов Windows 2 или SPI, а также в некоторой степени контролировать их.

Если версия пакета SDK для Microsoft Windows для Windows Vista установлена в расположение по умолчанию, отладка версий Ws2_32.dll для различных архитектур находится в следующей папке:

C:\Program Files\Microsoft SDK\Windows\v6.0\NoRedist

Проверяемая версия Ws2_32.dll, которая соответствует версии Windows и пакету обновления, на который выполняется тестирование, следует использовать. Помните, что исправления безопасности, возможно, были применены, которые обновили Ws2_32.dll в тестовой системе. Пакет SDK для Windows Vista и более ранние подписки пакета SDK для программного обеспечения платформы (SDK) включают проверенные сборки для различных версий Windows. Следует использовать ту же проверенную версию Ws2_32.dll, что и розничная версия, используемая в системе. Обратите внимание, что поведение, выполняемое под проверенной сборкой, не будет совпадать с выполнением розничной сборки.

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

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

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

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

C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\NetDs\winsock\dt_dll

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

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

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

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

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