DirectX アプリケーションのデバッグ

ここでは、C および C++ アプリケーションのデバッグに関する次のトピックについて説明します。

  • デバッグ DLL とリテール DLL
  • デバッグ DLL の削除または追加
  • その他のリソース

デバッグ DLL とリテール DLL

C++ でソフトウェアを開発する場合は、デバッグ バージョンの DLL のインストールが理想的です。デバッグ DLL には、プログラムの実行中に OutputDebugString 関数を使用して、内部データ構造を検証し、エラー メッセージを出力する追加コードがあります。エラーが発生すると、デバッグ出力により、問題に関するより詳細な説明が提供されます。デバッグ DLL を使用するとリテール DLL よりも実行速度が遅くなりますが、アプリケーションをデバッグするためにははるかに役立ちます。アプリケーションには必ずリテール バージョンを付属するようにしてください。

DirectX SDK インストール プログラムでは、DirectX DLL のデバッグ ビルドのインストールに関するオプションが提供されます。ローカル ハード ドライブでのインストールに既定で [Developer Runtime Support] を選択することにより、これの実行を選択できます。このオプションは、[Install DirectX Runtime] ノードの下の [カスタム セットアップ](Custom Setup) ページでのインストール中に表示されます。

    開発用ランタイム サポートは、Visual Studio .NET の DirectX 機能拡張に必要なコンポーネントです。

開発用ランタイム サポートをインストールした場合は、DirectX コントロール パネルを使用して、ほとんどのコンポーネントのデバッグ ビルドとリテール ビルドとを切り替えることができます。DirectX コントロール パネルを起動するには、[スタート](Start) メニューの [Microsoft DirectX SDK]、[DirectX Utilities] の順にポイントし、[DirectX Control Panel] をクリックします。これにより、[DirectX プロパティ](DirectX Properties) が開かれ、[Direct3D] タブで、[Use Debug Version of Direct3D] または [Use Retail Version of Direct3D] を選択できるようになります。

デバッグ メッセージを確認するには、デバッグ出力がウィンドウ内またはリモート コンピューターに表示されるように、システムを構成します。Visual Studio .NET 2003 などの開発環境では、これを実行できます。セットアップ手順については、環境のドキュメントを参照してください。

デバッグ ビルドの使用時にデバッガーで関連するシンボリック情報を検索できるようにするには、次のようにシンボル ファイルを配置します。

  • .pdb ファイルの場所
    バイナリと同じディレクトリ
  • .dbg ファイルの場所
    %SystemRoot%\Symbols\バイナリ拡張子\

デバッグ DLL の削除または追加

コンピューターにインストールされている DirectX SDK コンポーネントを変更することによって、インストールされている DLL を変更できます。コンピューター上にまだ元のインストール ファイルがある場合は、コントロール パネルの [プログラムの追加と削除](Add or Remove Programs) を使用してインストールを変更することによって、さらにコンポーネントを追加できます。(コンポーネントを削除するだけの場合は、これらのファイルは必要ありません)。元のインストール ファイルがない場合は、再度 SDK をダウンロードしなければならない場合があります。その後、再度セットアップを実行してコンポーネントを既存のインストールに追加します。

その他のリソース

マイクロソフト アプリケーション互換ツールキットには、アプリケーションの展開前に互換性の問題を評価し軽減するために必要なツールおよびドキュメントが含まれています。

C++ のメモリー破損およびその他の問題を検出するには、Microsoft Windows Application Verifier (AppVerifier) を使用できます。AppVerifier は、アプリケーションにおけるヒープの破損、ロックの使用、無効なハンドルなどを監視します。このツールの使用方法については、TechNet の「Testing Applications with AppVerifier (AppVerifier によるアプリケーションのテスト)」を参照してください。