デバッグの準備: C++ プロジェクトの種類
ここでは、Visual C++ プロジェクト テンプレートで作成された基本的なプロジェクトの種類をデバッグする方法について説明します。
出力として DLL を作成するプロジェクトは、共通する特徴があるため「DLL プロジェクトのデバッグ」にグループ化されています。
このトピックの内容
プロパティの推奨設定
プロパティによっては、すべてのアンマネージ デバッグ シナリオで同じように設定する必要があります。 プロパティの推奨設定を以下に示します。 ここに記載されていない設定は、アンマネージ プロジェクトの種類によって異なる場合があります。 詳細については、「C++ デバッグ構成のプロジェクト設定」を参照してください。
構成プロパティ | C/C++ | 最適化ノード
プロパティ名 | 設定 |
---|---|
Optimization | [無効 (/0d)] に設定します。最適化されたコードは、生成された命令がソース コードと直接対応していないため、デバッグが困難です。 プログラムで、最適化されたコード内だけに現れるバグが見つかった場合は、この設定を有効にできます。[逆アセンブル] ウィンドウに表示されるコードは最適化されたソースから生成されているため、ソース ウィンドウに表示されるコードとは一致しない可能性があります。 また、ステップなどの他の機能が正常に動作しない場合もあります。 |
構成プロパティ | リンカー | デバッグ ノード
プロパティ名 | 設定 |
---|---|
デバッグ情報の生成 | このオプションは、デバッグ シンボルとデバッグに必要なファイルを作成するために常に [はい (/DEBUG)] に設定する必要があります。 アプリケーションを稼働するときは、このオプションをオフに設定できます。 |
Win32 プロジェクト
Win32 アプリケーションは、C または C++ で記述される従来の Windows プログラムです。 Visual Studio でこの種類のアプリケーションをデバッグすることは簡単です。
Win32 アプリケーションには、MFC アプリケーションと ATL プロジェクトが含まれます。 これらは Windows API を使用します。MFC や ATL を使用することはありますが、共通言語ランタイム (CLR: Common Language Runtime) は使用しません。 ただし、CLR を使用するマネージド コードを呼び出すことはできます。
次の手順では、Visual Studio 内から Win32 プロジェクトをデバッグする方法を説明します。 Win32 アプリケーションをデバッグするもう 1 つの方法では、Visual Studio の外部でアプリケーションを起動してアタッチします。 詳細については、実行中のプロセスへのアタッチに関するページを参照してください。
C または C++ の Win32 アプリケーションをデバッグするには
Visual Studioで、プロジェクトをオープンします。
[デバッグ] メニューの [開始] を選びます。
「デバッガーでのはじめに」で説明されている手法を使用してデバッグ ます。
デバッグ構成を手動で設定するには
[表示] メニューの [プロパティ ページ] をクリックします。
[構成プロパティ] ノードが開いていない場合は、ノードをクリックして開きます。
[全般] をクリックし、[出力] 行の値を [デバッグ] に設定します。
[C/C++] ノードを開き、[全般] をクリックします。
[デバッグ] 行で、コンパイラで生成するデバッグ情報の種類を指定します。 選択できる値は、[プログラム データベース (/Zi)]、[エディット コンティニュ用プログラム データベース (/ZI)] などです。
[最適化] をクリックし、[最適化] 行で、ドロップダウン リストの [無効 (/0d)] をクリックします。
最適化されたコードは、生成された命令がソース コードと直接対応していないため、デバッグが困難です。 プログラムで、最適化されたコード内だけに現れるバグが見つかった場合は、この設定を有効にできます。[逆アセンブル] ウィンドウに表示されるコードは最適化されたソースから生成されているため、ソース ウィンドウに表示されるコードとは一致しない可能性があります。 ステップ実行などの機能で、ブレークポイントや実行ポイントが正しく表示されない場合があります。
[リンカー] ノードを開き、[デバッグ] をクリックします。 最初の [デバッグ情報の生成] 行で、ドロップダウン リストの [はい (/DEBUG)] をクリックします。 デバッグ時には、必ずこのオプションを設定する必要があります。
詳細については、「C++ デバッグ構成のプロジェクト設定」を参照してください。