Visual Studio 2019 リモートデバッグ(プロセスへのアタッチ)の方法

リモートデバッグを行う場合、デバッグしたいアプリケーションが実行されるPCで「msvsmon.exe」が実行されている必要がある。「msvsmon.exe」は Visual Studio 2019 自体をインストールするか、Remote Tools for Visual Studio 2019 をインストールしていると下記に存在しているはず。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Remote Debugger\x64\msvsmon.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Remote Debugger\x86\msvsmon.exe

訳があってデバッグしたいアプリケーションが実行されるPCに「msvsmon.exe」をインストールできない場合はファイル、フォルダの共有機能を利用し、別のPCにある「msvsmon.exe」をデバッグしたいアプリケーションが実行されるPCから起動する。

環境

Visual Studio 2019(デバッグ対象のPCにもインストール済み)
Windows10 pro 64bit(デバッグ対象のPCも同様)

デバッグ対象のPCで x64\msvsmon.exe を実行する。

初回起動の場合、構成ウィンドウが出るので、ファイアウォールの構成を選んで「リモートデバッグの構成」をクリックする。

visual-studio-remote-debugger-exe

ファイアウォールの構成については管理者権限をもったコマンドプロンプトから次のコマンドで再設定可能。

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Remote Debugger\x64\msvsmon.exe" /prepcomputer /domain /private /public

有効にしたいものを「/domain」「/private」「/public」で指定する。指定が無いものは無効になる。
ただし、3種類とも記載しなかった場合はすべてが有効になる。
構成状態はセキュリティが強化された Windows Defender ファイアウォールの受信の規則から確認できる。

visual-studio-remote-debugger-fw

msvsmon.exe が実行できるとデバッガからの接続待ちになる。

msvsmon-exe-normal

認証モードの設定

ツール ー オプション から行う。ここではとりあえず、認証なし、すべてのユーザーにデバッグを許可するにする。

msvsmon-exe-option

Visual Stodio から接続する

デバッグ ー プロセスへアタッチ から、接続の種類「リモート(認証無し)」、接続先にデバッグ対象のPCの名前やIPとポートを指定する。
デバッグ対象PCのプロセス一覧が表示されるのでこれで目的のプロセスにアタッチする。

msvsmon-exe-connect