混合モードでデバッグする (C#、C++、Visual Basic)
この記事では、マネージド コードとネイティブ コードを一緒にデバッグできるようにする方法について説明します。これは、混合モード デバッグとも呼ばれます。 混合モードのデバッグ シナリオには、次の 2 つがあります。
DLL を呼び出すアプリはネイティブ コードで記述されており、DLL はマネージド コードです。
DLL を呼び出すアプリはマネージド コードで記述されており、DLL はネイティブ コードになります。 このシナリオをの手順を説明したチュートリアルについては、マネージ コードとネイティブ コードのデバッグに関する記事を参照してください。
マネージド デバッガーとネイティブ デバッガーは両方とも、呼び出し元のアプリ プロジェクトの [プロパティ] ページで有効にすることができます。 ネイティブ アプリとマネージド アプリでは、設定が異なります。
呼び出し元のアプリのプロジェクトにアクセスできない場合は、DLL プロジェクトから DLL をデバッグすることができます。 デバッグに混合モードは必要ありません。 必要なものは DLL プロジェクトのみです。 詳細については、DLL プロジェクトからデバッグする方法に関するページを参照してください。
Note
この記事で説明されているダイアログとコマンドは、Visual Studio の設定またはエディションによっては、実際のエクスペリエンスと異なる場合があります。 設定を変更するには、[ツール]>[設定のインポートとエクスポート] を選択します。 詳細については、「すべての設定のリセット」を参照してください。
ネイティブの呼び出し元アプリに対して混合モードを有効にする (C++)
C++ でネイティブ呼び出し元アプリに対する混合モード デバッグを有効にするには、次の手順を実行します。
Visual Studio ソリューション エクスプローラーで、C++ プロジェクトを右クリックして [プロパティ] を選択するか、Alt + Enter キーボード ショートカットを使用します。 [<プロジェクト> プロパティ ページ] ダイアログ ボックスが開きます。
ダイアログで、[構成プロパティ] セクションを展開し、[デバッグ] タブを選択します。
[デバッグ] タブで、[デバッガーの種類] プロパティを選択し、ドロップダウン リストを使用して [自動] または [混合] オプションを選択します。 .NET Core や .NET Framework など、[混合] に複数のオプションがある場合は、構成に最適なオプションを選択します。
プロパティの変更内容を適用するには、[OK] を選択します。
マネージド呼び出し元アプリに対する混合モードを有効にする (C# または Visual Basic)
C# または Visual Basic でマネージド呼び出し元アプリに対する混合モード デバッグを有効にするには、次の手順を実行します。
Visual Studio ソリューション エクスプローラーで、C# または Visual Basic のプロジェクトを右クリックして [プロパティ] を選択するか、Alt + Enter キーボード ショートカットを使用します。 プロパティ ウィンドウが開きます。
[プロパティ] ペインで、以下のプロパティを設定して混合モード デバッグを有効にします。
.NET コード
左のメニューで、[デバッグ] を選択します。
[全般] セクションで、[デバッグ起動プロファイル UI を開く] リンクを選択します。 [起動プロファイル] ダイアログが開きます。
ダイアログでスクロールして、[ネイティブ コードのデバッグを有効にする] セクションを見つけます。
マネージド コードとネイティブ コードを一緒にデバッグできるようにする (混合モード デバッグ) プロパティを選択します。
プロパティの変更を適用するには、[起動プロファイル] ダイアログと [プロパティ] ペインを閉じます。
.NET Framework コード
デバッグ起動プロファイルがない .NET Framework コードを使用している場合は、次の手順を実行します。
左のメニューで、[デバッグ] を選択します。
[デバッガー エンジン] セクションで、[ネイティブ コードのデバッグを有効にする] プロパティを選択します。
プロパティの変更を適用するには、[プロパティ] ウィンドウを閉じます。
左のメニューで、[デバッグ] を選択します。
[デバッガー エンジン] セクションで、[ネイティブ コードのデバッグを有効にする] プロパティを選択します。
プロパティの変更を適用するには、[プロパティ] ウィンドウを閉じます。
Note
Visual Studio 2017 と Visual Studio 2019 の .NET Core アプリでは、プロジェクト プロパティの代わりに launchSettings.json ファイルを使用して、混合モード デバッグを有効にする必要があります。