C++ デバッグ構成のプロジェクト設定
C または C++ デバッグ構成のプロジェクト設定は、「プロパティ ページの]ダイアログ ボックスで変更できます。「方法: デバッグ構成とリリース構成を設定する」で説明されています。 次の表は、[プロパティ ページ] ダイアログ ボックスでデバッガー関連の設定を検索する場所を示しています。
手記
構成プロパティ/デバッグ カテゴリのデバッグ プロジェクトの設定は、UWP アプリと C++ で記述されたコンポーネントで異なります。 デバッグ セッションの開始 (VB、C#、C++、XAML)を参照してください。
各デバッグ プロパティ設定は、ソリューションを保存するときに、ソリューションの "ユーザーごと" ファイル (.vcxproj.user) に自動的に書き込まれ、保存されます。
次の表に示すように、デバッガーで リスト ボックスを起動するデバッガーを指定します。 選択したプロパティは、表示されるプロパティに影響します。
[構成プロパティ] フォルダー ([デバッグ] カテゴリ)
設定 | 説明 |
---|---|
[起動するデバッガー] | 次の選択肢を使用して、実行するデバッガーを指定します。 - [ローカル Windows デバッガー] - リモート Windows デバッガー - [Web ブラウザー デバッガー] - Webサービスデバッガー |
コマンド (ローカル Windows デバッガー) | ローカル コンピューターでデバッグするプログラムを開始するためのコマンドを指定します。 |
[リモート コマンド] (リモート Windows デバッガー) | リモート コンピューター上の .exe のパスを指定します。 リモート コンピューターで入力するのと同じようにパスを入力します。 |
コマンド引数 (ローカル Windows デバッガー) [リモート コマンド引数] (リモート Windows デバッガー) |
- デバッグするプログラムの引数を指定します。 コマンド ライン引数を設定する方法の詳細については、「デバッグ対象 (C++)にコマンド ライン引数を送信する」を参照してください。 このボックスでは、次のリダイレクト演算子を使用できます。 < file ファイルから stdin を読み取ります。 > file stdout をファイルに書き込みます。 >> file stdout をファイルに追加します。 2> file stderr をファイルに書き込みます。 2>> file stderr をファイルに追加します。 2> &1 stderr (2) 出力を stdout (1) と同じ場所に送信します。 1> &2 stdout (1) 出力を stderr (2) と同じ場所に送信します。 ほとんどの場合、これらの演算子はコンソール アプリケーションにのみ適用されます。 コマンドで文字をエスケープする必要がある場合は、%25 などの ASCII 値を使用して、%を置き換えることができます。 [デバッグの開始] コマンドを使用する場合、二重引用符で前のコマンドをエスケープします (たとえば、< の代わりに "<" とします)。 |
作業ディレクトリ | EXE が配置されているプロジェクト ディレクトリを基準として、デバッグ対象のプログラムの作業ディレクトリを指定します。 この値を空白のままにすると、作業ディレクトリはプロジェクト ディレクトリになります。 リモート デバッグの場合、プロジェクト ディレクトリはリモート サーバー上にあります。 |
[アタッチ] (ローカル Windows デバッガーとリモート Windows デバッガー) | アプリケーションを起動するか、アプリケーションにアタッチするかを指定します。 既定の設定は [いいえ] です。 |
リモートサーバー名 (リモートWindowsデバッガー) | アプリケーションをデバッグするコンピューター (自分以外) の名前を指定します。 RemoteMachine Build マクロは、このプロパティの値に設定されます。詳細については、「ビルド コマンドとプロパティの マクロを参照してください。 |
[接続] (リモート Windows デバッガー) | リモート デバッグ用の標準接続の種類と認証なしの接続の種類を切り替えることができます。 [リモート サーバー名] ボックスでリモート コンピューター名を指定します。 接続の種類は次のとおりです。 - Windows 認証を使用したリモート接続 - 認証なしのリモート 注 認証なしのリモート デバッグにより、リモート コンピューターがセキュリティ違反に対して脆弱になる可能性があります。 Windows 認証モードの方が安全です。 詳細については、「リモート デバッグのセットアップ 」を参照してください。 |
HTTP URL (Web サービス デバッガーと Web ブラウザー デバッガー) | デバッグ中のプロジェクトが配置されている URL を指定します。 |
[デバッガーのタイプ] | 使用するデバッガーの種類を指定します。ネイティブのみ、マネージドのみ、GPU のみ、混合、自動 (既定)、またはスクリプト します。 - ネイティブのみ は、アンマネージ C++ コード用です。 - マネージド のみ は、共通言語ランタイム (マネージド コード) で実行されるコード用です。 - 混合 は、マネージド コードとアンマネージド コードの両方に対してデバッガーを呼び出します。 - 自動 は、コンパイラと EXE の情報に基づいてデバッガーの種類を決定します。 - スクリプト は、スクリプトのデバッガーを呼び出します。 - GPU のみ は、GPU デバイスまたは DirectX 参照ラスタライザーで実行される C++ AMP コード用です。 GPU コード のデバッグを参照してください。 |
[環境] (ローカル Windows デバッガーとリモート Windows デバッガー) | デバッグするプログラムの環境変数を指定します。 標準の環境変数構文 (たとえば、PATH="%SystemRoot%\..." ) を使用します。 これらの変数は、マージ環境の 設定に応じて、システム環境をオーバーライドするか、システム環境とマージされます。 右側の列をクリックすると、[編集...] が表示されます。 そのリンクを選択してプロパティ エディターを開き、環境変数を編集します。 複数の環境変数を追加するには、プロパティ エディター を使用し、1 行に 1 つの変数を追加します。 |
[マージ環境] (ローカル Windows デバッガー) | 環境 ボックスで指定された変数が、オペレーティング システムによって定義されている環境とマージされるかどうかを判断します。 既定の設定は [はい] です。 |
SQL デバッグ (MPI クラスター デバッガーを除くすべて) | Visual C++ アプリケーションから SQL プロシージャのデバッグを有効にします。 既定の設定は [いいえ] です。 |
[デバッグ アクセラレータの種類] (GPU デバッグのみ) | デバッグに使用する GPU デバイスを指定します。 互換性のある GPU デバイス用のデバイス ドライバーをインストールすると、追加のオプションが追加されます。 既定の設定は GPU - ソフトウェア エミュレーター です。 |
GPU の既定のブレークポイント動作 (GPU デバッグのみ) | SIMD ワープ内のスレッドごとにブレークポイント イベントを発生させるかどうかを指定します。 既定の設定では、ワープごとに 1 回だけブレークポイント イベントを発生させます。 |
[AMP の既定のアクセラレータ] | GPU コードをデバッグするときの既定の AMP アクセラレータを指定します。 WARP ソフトウェア アクセラレータ 選択して、コードではなくハードウェアまたはドライバーによって問題が発生したかどうかを調査します。 |
[配置ディレクトリ] (リモート Windows デバッガー) | プロジェクトの出力が起動前にコピーされるリモート コンピューター上のパスを指定します。 パスは、リモート コンピューター上のネットワーク共有にすることも、リモート コンピューター上のフォルダーへのパスにすることもできます。 既定の設定は空です。つまり、プロジェクトの出力はネットワーク共有にコピーされません。 ファイルの展開を有効にするには、[Configuration Manager] ダイアログ ボックスの [展開] チェック ボックスもオンにする必要があります。 詳細については、「方法: 構成を作成および編集する」を参照してください。 |
[配置する追加ファイル] (リモート Windows デバッガー) | Deployment Directory プロパティが設定されている場合、これは、展開ディレクトリにコピーする追加のフォルダーまたはファイルのセミコロン区切りの一覧です。 既定の設定は空です。つまり、追加のフォルダーまたはファイルは展開ディレクトリにコピーされません。 フォルダーの内容を展開ディレクトリ内の同じフォルダーにコピーするには、フォルダー名を指定します。 ファイルの展開を有効にするには、[Configuration Manager] ダイアログ ボックスの [展開] チェック ボックスもオンにする必要があります。 詳細については、「方法: 構成を作成および編集する」を参照してください。 |
Visual C++ デバッグ ランタイム ライブラリ の配置 (リモート Windows デバッガー) | Deployment Directory プロパティが設定されている場合は、現在のプラットフォームの Visual C++ デバッグ ランタイム ライブラリをネットワーク共有にコピーするかどうかを指定します。 既定の設定は [はい] です。 |
C/C++ フォルダー ([全般] カテゴリ)
設定 | 説明 |
---|---|
デバッグ情報形式 (/Z7, /Zd, Zi, /ZI) | プロジェクト用に作成するデバッグ情報の種類を指定します。 既定のオプション (/ZI) は、エディット・アンド・コンティニューに対応した形式でプログラム データベース (PDB) を作成します。 詳細については、「/Z7、/Zd、/Zi、/ZI (デバッグ情報形式)を参照してください。 |
C/C++ フォルダー (最適化カテゴリ)
設定 | 説明 |
---|---|
[最適化] | コンパイラが生成するコードを最適化するかどうかを指定します。 最適化により、実行されるコードが変更されます。 最適化されたコードがソース コードと一致しなくなり、デバッグが困難になります。 既定のオプション (無効 (/0d)) は最適化を抑制します。 最適化を抑制して開発し、コードの実稼働バージョンを作成するときに有効にすることができます。 |
リンカー フォルダー ([デバッグ] カテゴリ)
設定 | 説明 |
---|---|
デバッグ情報の生成 (/DEBUG) | /Z7、/Zd、Zi、または /ZI で指定された形式のデバッグ情報を含むようにリンカーに指示します。 |
プログラム データベース ファイルの の生成 (/PDB:name) | このボックスにプログラム データベース (PDB) ファイルの名前を指定します。 デバッグ情報形式として ZI または /Zi を選択する必要があります。 |
[プライベート シンボルの削除] (/PDBSTRIPPED:filename) | PDB ファイルにプライベート シンボルを含めない場合は、このボックスに PDB ファイルの名前を指定します。 このオプションは、/DEBUG、/Z7、/Zd などの PDB ファイルを生成するコンパイラまたはリンカー オプションを使用してプログラム イメージをビルドするときに、2 つ目の PDB ファイルを作成します。 または /Zi。 この 2 つ目の PDB ファイルでは、顧客に出荷したくないシンボルが省略されています。 詳細については、「/PDBSTRIPPED (プライベート シンボルの除去)」を参照してください。 |
マップ ファイル の生成 (/MAP) | リンク中にマップ ファイルを生成するようにリンカーに指示します。 既定の設定は [いいえ] です。 詳細については、「/MAP (Mapfile の生成)を参照してください。 |
[マップ ファイル名] (/MAP:name) | [マップ ファイルの生成] を選択した場合は、このボックスにマップ ファイルを指定できます。 詳細については、「/MAP (Mapfile の生成)を参照してください。 |
[マップファイルのエクスポート] (/MAPINFO:EXPORTS) | マップ ファイルにエクスポートされた関数が含まれます。 既定の設定は [いいえ] です。 詳細については、「/MAPINFO (Mapfile に情報を含める)を参照してください。 |
デバッグ可能アセンブリ () (/ASSEMBLYDEBUG) | リンカー /ASSEMBLYDEBUG オプションの設定を指定します。 使用可能な値は次のとおりです。 - デバッグ可能な属性出力されません。 - [ランタイム トラッキングおよび最適化の無効 (/ASSEMBLYDEBUG)]。 これが既定の設定です。 - ランタイム追跡は行わず、最適化 (/ASSEMBLYDEBUG:DISABLE)を有効にします。 親またはプロジェクトの既定値>から継承 - <。 - 詳細については、/ASSEMBLYDEBUG (DebugableAttribute の追加)を参照してください。 |
これらの設定は、Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings インターフェイスを使用してプログラムで [構成プロパティ] フォルダー ([デバッグ] カテゴリ) で変更できます。 詳細については、VCDebugSettingsを参照してください。
その他のプロジェクト設定
静的ライブラリや DLL などのプロジェクトの種類をデバッグするには、Visual Studio プロジェクトが正しいファイルを見つけることができる必要があります。 ソース コードを使用できる場合は、デバッグを容易にするために、静的ライブラリと DLL を個別のプロジェクトとして同じソリューションに追加できます。 これらのプロジェクトの種類の作成については、「ダイナミック リンク ライブラリ (DLL) の作成と使用」および「スタティック ライブラリを使用した作成」を参照してください。 ソース コードが利用できる場合は、[ファイル]>[新規作成]>[既存のコードからプロジェクト]を選択して、新しい Visual Studio プロジェクトを作成することもできます。
プロジェクトの外部にある DLL をデバッグするには、「DLL プロジェクトデバッグする」を参照してください。 独自の DLL プロジェクトをデバッグする必要があるが、呼び出し元アプリケーションのプロジェクトにアクセスできない場合は、「DLL プロジェクトからデバッグする方法」を参照してください。