Visual Studio での C++ プロジェクトのリモート デバッグ

適用対象:yesVisual Studio noVisual Studio for Mac noVisual Studio Code

別のコンピューター上の Visual Studio アプリケーションをデバッグするには、アプリを配置したコンピューターにリモート ツールをインストールして実行し、Visual Studio からリモート コンピューターに接続するようにプロジェクトを構成してから、アプリを配置して実行します。

リモート デバッガーのコンポーネント

ユニバーサル Windows アプリ (UWP) のリモート デバッグの詳細については、[インストールされているアプリ パッケージのデバッグ](debug-installed-app-package.md)に関するページを参照してください。

必要条件

リモート デバッガーは、Windows 7 以降と Windows Server 2008 Service Pack 2 以降の Windows Server バージョンでサポートされています。 詳細な要件の一覧については、「要件」を参照してください。

注意

プロキシ経由で接続された 2 台のコンピューター間のデバッグはサポートされていません。 待機時間の長い接続や低帯域幅の接続 (ダイヤルアップ インターネットなど)、または国をまたぐインターネット経由のデバッグは推奨されません。これらは、障害が発生するか、または過度に低速になる可能性があります。

リモート ツールのダウンロードおよびインストール

Visual Studio マシンではなく、デバッグするリモート デバイスまたはサーバーで、次の表のリンクから適切なバージョンのリモート ツールをダウンロードしてインストールします。

  • お使いのバージョンの Visual Studio 用の最新のリモート ツールをダウンロードします。 最新バージョンのリモート ツールは、以前のバージョンの Visual Studio と互換性がありますが、以前のバージョンのリモート ツールは、以降のバージョンの Visual Studio と互換性がありません (たとえば、Visual Studio 2019 を使用している場合は、Visual Studio 2019 用のリモート ツールの最新の更新プログラムをダウンロードします。このシナリオでは、Visual Studio 2022 用のリモート ツールをダウンロードしないでください)。
  • インストール先のマシンと同じアーキテクチャを持つリモート ツールをダウンロードします。 たとえば、64 ビットのオペレーティング システムを実行しているリモート コンピューターで 32 ビット アプリをデバッグする場合は、64 ビットのリモート ツールをインストールします。
  • ARM64 デバイスで ARM64EC アプリケーションをリモート デバッグする場合は、ARM64 リモート ツールをインストールし、それらのツールと一緒にインストールされる x64 リモート デバッガーを起動します。 これは Program Files (x86)\Microsoft Visual Studio<バージョン>\Common7\IDE\Remote Debugger\x64 にあります。
バージョン Link メモ
Visual Studio 2022 リモート ツール すべてのバージョンの Visual Studio 2022 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2019 リモート ツール すべてのバージョンの Visual Studio 2019 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2017 リモート ツール すべてのバージョンの Visual Studio 2017 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2015 リモート ツール Visual Studio 2015 用のリモート ツールは My.VisualStudio.com で入手できます。 メッセージが表示されたら、無料の Visual Studio Dev Essentials プログラムに参加するか、または Visual Studio サブスクリプション ID でサインインします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2013 リモート ツール Visual Studio 2013 ドキュメントのダウンロード ページ
Visual Studio 2012 リモート ツール Visual Studio 2012 ドキュメントのダウンロード ページ
バージョン Link メモ
Visual Studio 2019 リモート ツール すべてのバージョンの Visual Studio 2019 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。 最新バージョンのリモート ツールについては、Visual Studio 2022 ドキュメントを開きます。
Visual Studio 2017 リモート ツール すべてのバージョンの Visual Studio 2017 と互換性があります。 デバイスのオペレーティング システム (x86、x64、または ARM64) に一致するバージョンをダウンロードします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2015 リモート ツール Visual Studio 2015 用のリモート ツールは My.VisualStudio.com で入手できます。 メッセージが表示されたら、無料の Visual Studio Dev Essentials プログラムに参加するか、または Visual Studio サブスクリプション ID でサインインします。 Windows Server の場合、リモート ツールのダウンロードについては、ファイルのダウンロードのブロック解除に関するページを参照してください。
Visual Studio 2013 リモート ツール Visual Studio 2013 ドキュメントのダウンロード ページ
Visual Studio 2012 リモート ツール Visual Studio 2012 ドキュメントのダウンロード ページ

リモート デバッガーを実行するには、リモート ツールをインストールするのではなく、msvsmon.exe をリモート コンピューターにコピーします。 ただし、リモート デバッガー構成ウィザード (rdbgwiz.exe) は、リモート ツールをインストールした場合にのみ使用できます。 リモート デバッガーをサービスとして実行する場合は、構成にウィザードの使用が必要になることがあります。 詳細については、「(オプション) リモート デバッガーをサービスとして構成する」を参照してください。

注意

  • ARM デバイスで Windows 10 以降のアプリをデバッグするには、最新バージョンのリモート ツールで使用できる ARM64 を使用します。
  • Windows RT デバイスで Windows 10 アプリをデバッグするには、ARM を使用します。これは、Visual Studio 2015 リモート ツールのダウンロードでのみ使用できます。

ヒント

場合によっては、ファイル共有からリモート デバッガーを実行するのが最も効率的な場合があります。 詳細については、[ファイル共有からのリモート デバッガーの実行](../debugger/remote-debugging.md#fileshare_msvsmon)に関するページを参照してください。

リモート デバッガーのセットアップ

  1. リモート コンピューター上の [スタート] メニューで、 [リモート デバッガー] を見つけて起動します。

    リモート コンピューターに対する管理アクセス許可がない場合は、 [リモート デバッガー] アプリを右クリックし、 [管理者として実行] を選択します。 それ以外の場合は、通常どおり開始します。

    管理者として実行されているプロセス、または別のユーザー アカウント (IIS など) で実行されているプロセスにアタッチする場合は、 [リモート デバッガー] アプリを右クリックし、 [管理者として実行] を選択します。 詳細については、「管理者としてリモート デバッガーを実行する」を参照してください。

  2. リモート デバッガーを初めて (またはその構成を完了する前に) 開始すると、 [リモート デバッグの構成] ダイアログ ボックスが表示されます。

    リモート デバッガーの構成

  3. Windows Web Services API がインストールされていない場合 (これは、Windows Server 2008 R2 でのみ発生します) は、 [インストール] ボタンを選択します。

  4. リモート ツールを使用するネットワークの種類を少なくとも 1 つ選択します。 コンピューターがドメインを介して接続されている場合は、最初の項目を選択する必要があります。 コンピューターがワークグループまたはホーム グループを介して接続されている場合は、必要に応じて、2 番目または 3 番目の項目を選択します。

  5. [リモート デバッグの構成] を選択してファイアウォールを構成し、リモート デバッガーを起動します。

  6. 構成が完了すると、 [リモート デバッガー] ウィンドウが表示されます。

    [リモート デバッガー] ウィンドウ

    [リモート デバッガー] ウィンドウ

    リモート デバッガーは接続を待機しています。 表示されているサーバー名とポート番号を使用して、Visual Studio でリモート接続構成を設定します。

リモート デバッガーを停止するには、 [ファイル]>[終了] を選択します。 リモート デバッガーを再起動するには、 [スタート] メニューを使用するか、またはコマンド ラインから次のコマンドを実行します。

<Remote debugger installation directory>\msvsmon.exe

注意

追加のユーザーのアクセス許可を追加し、認証モード、またはリモート デバッガーのポート番号を変更する必要がある場合は、「リモート デバッガーを構成する」を参照してください。

C++ Project プロジェクトのリモート デバッグ

次の手順では、プロジェクトのパスは C:\remotetemp で、リモート コンピューターの名前は MySurface です。

  1. CppConsoleApp という名前の C++ コンソール アプリケーションを作成します

  2. ブレークポイントを、アプリケーション内の達しやすい任意の箇所 (たとえば、main 関数の CppConsoleApp.cpp) に設定します。

  3. ソリューション エクスプローラーで、プロジェクトを右クリックし、 [プロパティ] を選択します。 [デバッグ] タブを開きます。

  4. [起動するデバッガー][リモート Windows デバッガー] に設定します。

    Visual Studio ソリューション エクスプローラーのプロパティの [デバッグ] タブのスクリーンショット。[起動するデバッガー] プロパティが [リモート Windows デバッガー] に設定されています。

  5. プロパティに次の変更を適用します。

    設定 [値]
    リモート コマンド C:\remotetemp\CppConsoleApp.exe
    作業ディレクトリ C:\remotetemp
    リモート サーバー名 MySurface:portnumber
    Connection Windows 認証を使用したリモート接続
    [デバッガーのタイプ] ネイティブのみ
    [配置ディレクトリ] C:\remotetemp
    [配置する追加ファイル] $(ProjectDir)\data

    追加のフォルダーを配置し、フォルダー内のすべてのファイルを同じフォルダーに配置する場合は、フォルダー名を指定します。

    プロパティの詳細については、「C++ デバッグ構成のプロジェクト設定」を参照してください。

  6. ソリューション エクスプローラーで、ソリューションを右クリックして [構成マネージャー] を選択します。

  7. [デバッグ] 構成の [配置] チェック ボックスをオンにします。

    Visual Studio ソリューション エクスプローラーの構成マネージャーのスクリーンショット。[デバッグ] 構成が選択され、[配置] がオンになっています。

  8. デバッグを開始します ([デバッグ] > [デバッグの開始]、または F5 キー)。

  9. 実行可能ファイルが、リモート コンピューターに自動的に配置されます。

  10. メッセージが表示されたら、リモート コンピューターに接続するためのネットワーク資格情報を入力します。

    必要な資格情報は、ネットワークのセキュリティ構成に固有です。 たとえば、ドメイン コンピューターでは、セキュリティ証明書を選択するか、ドメイン名とパスワードを入力します。 ドメイン以外のコンピューターでは、コンピューター名と有効なユーザー アカウント名 (MySurface\name@something.com など) および正しいパスワードなどを入力します。

  11. Visual Studio コンピューターで、実行がブレークポイントで停止したことを確認できるはずです。

    ヒント

    また、これらのファイルは別の手順でも配置できます。 ソリューション エクスプローラーで、プロジェクト ノードを右クリックして [配置] を選択します。

    アプリケーションで必要なコード以外のファイルがある場合は、 [リモート Windows デバッガー] ページの [追加の配置ファイル] にあるセミコロン区切りのリストで指定できます。

    または、ファイルをプロジェクトに追加し、各ファイルの [プロパティ] ページで [コンテンツ] プロパティを [はい] に設定します。 これらのファイルは、 [リモート Windows デバッガー] ページで指定した [配置ディレクトリ] にコピーされます。 また、 [配置ディレクトリ] のサブフォルダーにファイルをコピーする必要がある場合は、 [項目の種類][ファイルのコピー] に変更し、そこで追加のプロパティを指定できます。

リモート シンボルを使用したデバッグのセットアップ

Visual Studio コンピューターで生成したシンボルを使用して、コードをデバッグすることができます。 リモート デバッガーのパフォーマンスは、ローカル シンボルを使用すると大幅に向上します。 リモート シンボルを使用する必要がある場合、リモート マシン上のシンボルを探すように、リモート デバッグ モニターに指示する必要があります。

Visual Studio 2013 Update 2 以降では、msvsmon コマンド ライン スイッチの Msvsmon /FallbackLoadRemoteManagedPdbs を使用して、マネージド コードにリモート シンボルを使用できます。

詳細については、リモート デバッグのヘルプ (リモート デバッガーのウィンドウで F1 キーを押すか、[ヘルプ] > [使い方] の順にクリックします) を参照してください。 詳細については、「.NET Remote Symbol Loading Changes in Visual Studio 2012 and 2013 (Visual Studio 2012 および 2013 における .NET のリモート シンボルの読み込みの変更)」を参照してください。

関連項目