次の方法で共有


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

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

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

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

デバッグ用とリテール用の DLL

Microsoft® DirectX®  ソフトウェア開発キット (SDK) インストール プログラムには、DirectX  ダイナミックリンク ライブラリ (DLL) のデバッグ ビルドまたはリテール ビルドのいずれかをインストールするオプションがある。

C++ でソフトウェアを開発している場合は、DLL のデバッグ バージョンをインストールするとよい。このオプションでは、デバッグおよびリテールの DLL がシステムにインストールされる。リテール バージョンでは、リテール DLL のみがインストールされる。DLL のデバッグ バージョンには内部データ構造を検証する追加コードがあり、プログラムの実行中に (OutputDebugString 関数を使って) デバッグのエラー メッセージを出力する。エラーが発生すると、問題の詳細がデバッグ出力される。DLL のデバッグ バージョンはリテール バージョンよりも動作が遅いが、アプリケーションのデバッグにはリテール バージョンよりも役立つ。アプリケーションを出荷する場合は、リテール バージョンを出荷すること。

SDK のデバッグ バージョンがインストールされている場合、DirectX コントロール パネル ユーティリティを使って、ほとんどのコンポーネントのデバッグ ビルドとリテール ビルドを切り替えられる。この機能を有効にするには、SDK をインストールするときに [デバッグ] オプションを選択する。

デバッグ メッセージを確認するには、ウィンドウ内やリモート コンピュータにデバッグ出力が表示されるよう、システムの構成を設定する。Microsoft Visual Studio® .NET などの開発環境では、この設定が可能である。設定方法については、開発環境についてのドキュメントを参照すること。

デバッグ用のビルドを使う場合は、デバッガが関連するシンボリック情報を確実に見つけられるようにするために、以下に示す場所にシンボル ファイルを置いておかなければならない。

オペレーティング システム デバッガ .pdb ファイルの場所 .dbg ファイルの場所
Microsoft Windows® 98 Microsoft Visual C++® バイナリと同じディレクトリ バイナリと同じディレクトリ
Windows 2000 Visual Studio .NET バイナリと同じディレクトリ %SystemRoot%\Symbols\<binary extension>\
Microsoft Windows NT®、Windows 2000 Visual C++ バイナリと同じディレクトリ %SystemRoot%\Symbols\<binary extension>\
Windows NT、Windows 2000 NTSD/KD %SystemRoot%\Symbols\<binary extension>\ %SystemRoot%\Symbols\<binary extension>\
Windows XP Visual Studio .NET バイナリと同じディレクトリ %SystemRoot%\Symbols\<binary extension>\

  Windows NT または Windows 2000 で Visual C++ 開発システムを使ってデバッグを実行する場合は、Splitsym 開発ツールは使わないこと。Splitsym は、プライベート シンボリック情報を <binary>.dbg ファイルからバイナリ エクステンションのシンボル ディレクトリ (%SystemRoot%\Symbols\Dll\ など) にコピーし、バイナリ ディレクトリから元のファイルを削除してしまう。Visual C++ を使うには、プライベート シンボリック情報のファイル (<binary>.dbg) がバイナリ ファイルと同じディレクトリに置かれている必要がある。したがって、デバッグ用のビルドを使う場合は、プライベート シンボリック情報のコピーだけを行い、削除を行ってはならない。これが問題となるのは、Windows NT または Windows 2000 で Visual C++ を使う場合だけである。その他のデバッグ情報については、Visual C++ のドキュメントおよび Windows 2000  Driver Development Kit (DDK) のドキュメントを参照すること。

デバッグ DLL の追加と削除

リテール ランタイムをインストールしていてデバッグ ランタイムに変更したい場合は、(DXSDK)\SDKDev\WindowsXP フォルダにある Dxpsetup.exe を実行する。

デバッグ ランタイムをインストールしていてリテール ランタイムに戻したい場合は、Windows System フォルダにある Undxxpdebug.exe を実行する。この操作は、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックして、ダイアログ ボックスに「undxxpdebug」と入力しても実行できる。

  Windows 98、Windows Millennium Edition (Windows Me)、または Windows 2000 を使っている場合、ランタイムのデバッグ バージョンを削除するには、DirectX SDK をアンインストールする必要がある。

その他のリソース

C++ メモリの破損を発見するには、Compuware 社の BoundsChecker World Wide Web リンク などのメモリ破損/リーク ツールの使用を検討するとよい。

Microsoft では、MSDN® で "knowledge base (ナレッジ ベース)" の記事データベースを公開している。記事を参照するには、www.microsoft.com/japan/msdn/ World Wide Web リンク (日本語) に接続するか、msdn.microsoft.com World Wide Web リンク (英語) に接続し、目的のトピックを検索する。

AppVerifier ツールは、ヒープの破損、ロックの使用、無効なハンドル、スレッド スタック サイズのチェックなどについてアプリケーションを監視する。このツールを見つけるには、MSDN Library World Wide Web リンク で「Testing Applications with AppVerifier」と検索する。