デバッグ機能とトレース機能

Windows Sockets 2 アプリケーション開発者は、でバグを分離する必要があります。

  • アプリケーション。
  • Ws2 _32.dll または互換性 shim dll の1つです。
  • サービス プロバイダー。

Windows ソケット2では、次のいくつかのコンポーネントと機能によって、このニーズに対処しています。

  • Windows Vista 以降での Winsock トレースの統合サポート。
  • Windows Vista での Ws2 _32.dll の特別に考案されたデバッグバージョン。
  • Windows Server 2003 および Windows XP で使用するための、別個のプリミティブデバッグおよびトレース機能。

Windows イベントトレーシングを使用した Winsock トレース

Windows イベントトレーシング (ETW) を使用した Winsock トレースの統合サポートは、Windows Vista 以降に含まれています。 これは、Windows Vista 以降で Winsock 呼び出しをトレースする場合に推奨される方法です。 ETW を使用した Winsock トレースは軽量であり、Windows の製品版で動作します。 追加のソフトウェアやコンポーネントは必要ありません。 この機能は、Windows Vista 以降でのみ有効にする必要があります。 詳細については、「 Winsock トレース 」トピックを参照してください。

Ws232.dll のデバッグバージョンの使用 _

Windows Vista と Winsock トレースで Ws2 _32.dll のデバッグバージョンを組み合わせることにより、WINDOWS Sockets 2 API または SPI にまたがるすべてのプロシージャ呼び出しを監視し、何らかの制御を行うことができます。

Windows Vista 用の Microsoft Windows ソフトウェア開発キット (SDK) のバージョンが既定の場所にインストールされている場合、さまざまなアーキテクチャの Ws2 _32.dll のデバッグバージョンは、次のフォルダーにあります。

C: \ Program Files \ Microsoft sdk \ Windows V2.0 \ \ noredist

確認済みのバージョンの Ws2 _32.dll は、Windows のバージョンおよびテスト対象の Service Pack と一致している必要があります。 テストシステムで 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 V1.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 トレース