次の方法で共有


混合モードでデバッグする (C#、C++、Visual Basic)

この記事では、マネージド コードとネイティブ コードを一緒にデバッグできるようにする方法について説明します。これは、混合モード デバッグとも呼ばれます。 混合モードのデバッグ シナリオには、次の 2 つがあります。

  • DLL を呼び出すアプリはネイティブ コードで記述されており、DLL はマネージド コードです。

  • DLL を呼び出すアプリはマネージド コードで記述されており、DLL はネイティブ コードになります。 このシナリオをの手順を説明したチュートリアルについては、マネージ コードとネイティブ コードのデバッグに関する記事を参照してください。

マネージド デバッガーとネイティブ デバッガーは両方とも、呼び出し元のアプリ プロジェクトの [プロパティ] ページで有効にすることができます。 ネイティブ アプリとマネージド アプリでは、設定が異なります。

呼び出し元のアプリのプロジェクトにアクセスできない場合は、DLL プロジェクトから DLL をデバッグすることができます。 デバッグに混合モードは必要ありません。 必要なものは DLL プロジェクトのみです。 詳細については、DLL プロジェクトからデバッグする方法に関するページを参照してください。

Note

この記事で説明されているダイアログとコマンドは、Visual Studio の設定またはエディションによっては、実際のエクスペリエンスと異なる場合があります。 設定を変更するには、[ツール]>[設定のインポートとエクスポート] を選択します。 詳細については、「すべての設定のリセット」を参照してください。

ネイティブの呼び出し元アプリに対して混合モードを有効にする (C++)

C++ でネイティブ呼び出し元アプリに対する混合モード デバッグを有効にするには、次の手順を実行します。

  1. Visual Studio ソリューション エクスプローラーで、C++ プロジェクトを右クリックして [プロパティ] を選択するか、Alt + Enter キーボード ショートカットを使用します。 [<プロジェクト> プロパティ ページ] ダイアログ ボックスが開きます。

  2. ダイアログで、[構成プロパティ] セクションを展開し、[デバッグ] タブを選択します。

  3. [デバッグ] タブで、[デバッガーの種類] プロパティを選択し、ドロップダウン リストを使用して [自動] または [混合] オプションを選択します。 .NET Core や .NET Framework など、[混合] に複数のオプションがある場合は、構成に最適なオプションを選択します。

    Visual Studio で C++ プロジェクトに対して混合モード デバッグを有効にする方法を示すスクリーンショット。

  4. プロパティの変更内容を適用するには、[OK] を選択します。

マネージド呼び出し元アプリに対する混合モードを有効にする (C# または Visual Basic)

C# または Visual Basic でマネージド呼び出し元アプリに対する混合モード デバッグを有効にするには、次の手順を実行します。

  1. Visual Studio ソリューション エクスプローラーで、C# または Visual Basic のプロジェクトを右クリックして [プロパティ] を選択するか、Alt + Enter キーボード ショートカットを使用します。 プロパティ ウィンドウが開きます。

  2. [プロパティ] ペインで、以下のプロパティを設定して混合モード デバッグを有効にします。

    .NET コード

    1. 左のメニューで、[デバッグ] を選択します。

    2. [全般] セクションで、[デバッグ起動プロファイル UI を開く] リンクを選択します。 [起動プロファイル] ダイアログが開きます。

    3. ダイアログでスクロールして、[ネイティブ コードのデバッグを有効にする] セクションを見つけます。

    4. マネージド コードとネイティブ コードを一緒にデバッグできるようにする (混合モード デバッグ) プロパティを選択します。

      Visual Studio で C# または Visual Basic プロジェクトの混合モード デバッグを有効にする方法を示すスクリーンショット。

    5. プロパティの変更を適用するには、[起動プロファイル] ダイアログと [プロパティ] ペインを閉じます。

    .NET Framework コード

    デバッグ起動プロファイルがない .NET Framework コードを使用している場合は、次の手順を実行します。

    1. 左のメニューで、[デバッグ] を選択します。

    2. [デバッガー エンジン] セクションで、[ネイティブ コードのデバッグを有効にする] プロパティを選択します。

      Visual Studio 2019 で C# または Visual Basic プロジェクトの混合モード デバッグを有効にする方法を示すスクリーンショット。

    3. プロパティの変更を適用するには、[プロパティ] ウィンドウを閉じます。

    1. 左のメニューで、[デバッグ] を選択します。

    2. [デバッガー エンジン] セクションで、[ネイティブ コードのデバッグを有効にする] プロパティを選択します。

      Visual Studio 2019 で C# または Visual Basic プロジェクトの混合モード デバッグを有効にする方法を示すスクリーンショット。

    3. プロパティの変更を適用するには、[プロパティ] ウィンドウを閉じます。

    Note

    Visual Studio 2017 と Visual Studio 2019 の .NET Core アプリでは、プロジェクト プロパティの代わりに launchSettings.json ファイルを使用して、混合モード デバッグを有効にする必要があります。