こんにちは、今回はVirtualBox上の仮想OSで動作しているプロセスに、ホストOSからアタッチしてデバッグする方法をご紹介いたします。
VirtualBoxとは
既存のPC(ホストOS)上で、別のOS(ゲストOS)を仮想的に動かすことができる、無料の仮想化ソフトウェアです。これにより、複数のOSを同時に利用したり、テスト用の環境を手軽に構築したりすることができます。
今回はホストOS:Windows11、ゲストOS:Windows10で実施します。
アタッチとは
すでに起動中のプロセスにデバッガーを接続し、プログラムのデバッグを行える機能です。
・VirtualBox(Windows10のイメージをインポートし、デバッグしたいアプリがインストールされている状態)
・VisualStudio2017
・RemoteDebugger(VisualStudio上からインストールすることができる)
ネットワークの設定
・設定→ネットワーク→アダプター1→割り当てを「ホストオンリー」にします。
共有フォルダの設定
ホストOSからゲストOSへファイルを移動する際に使います。
・設定→共有フォルダ→追加(+ボタン)→「フォルダーのパス」と「フォルダ名を」設定します。
・「自動マウント」と「永続化する」にチェックを入れます。
→OK
・コントロール パネル→システムとセキュリティ→Windows Defender ファイアウォール→詳細設定
・左列の「受信の規則」をクリック。→右列の「新しい規則」をクリック。
・「ポート」を選択し次へ
・「TCP」「特定のローカルポート」→「4022」を入力し次へ
・「接続を許可する」→次へ
・全てチェックし次へ
・名前を設定し完了を押します。
VisualStudioのバージョン別リモート デバッガー ポートの割り当ては以下のようになっているようです。
・Visual Studio 2022: 4026
・Visual Studio 2019: 4024
・Visual Studio 2017: 4022
・Visual Studio 2015: 4020
・Visual Studio 2013: 4018
・Visual Studio 2012: 4016
・「デバッグ」→「オプション」
・デバッグ→マイコードのみを有効にするのチェックをはずします。
・デバッグ→シンボル→「+」→シンボルファイル(.pdb)のある場所を指定します。
※シンボルファイルは「Debug」ビルドでないと作成されないので必ず「Debug」でビルドしてください。
・ゲストOS上でデバッグしたいアプリを起動します。
・RemoteDebuggerを起動します。
・ホストOS上で起動したアプリのソリューションを開きます。
・デバッグしたい位置にブレイクポイントを設定します。
・「デバッグ」→「プロセスにアタッチ」
・接続先に192.168.56.2:4022を入力し、Enterを押します。
・使用可能なプロセス欄にゲストOSで実行しているアプリが表示されるので、選択し、アタッチを押します。
・アプリの操作を実施し、ブレイクポイントにヒットすれば成功です。
以下をチェックしてみてください。
アタッチができない場合
・VirtualBoxの設定の再確認。
・ホストOSのファイアウォールの設定の再確認。
・RemoteDebuggerは起動しているか。
・アプリは起動しているか。(目的のプロセスは起動しているか)
アタッチはできるがブレイクポイントが白抜きなっている。
・VisualStudioの設定の再確認。(特にシンボルファイルのパス)
・シンボルファイル(.pdb)は実行ファイルを作成した際にできた.pdbか。
・参照しているソースバージョンが起動しているものと同一か。
設定が全て正しい場合でもなぜかヒットしない場合があります。
その場合はVisualStudioの再インストールで改善する場合があります。
以上、RemoteDebuggerを使用したデバッグ方法のご紹介でした。
株式会社SAKURUGのAdvent Calendar 2025です。
会社HP: https://sakurug.co.jp
ーーーーーーーーーー
株式会社SAKURUGは「寄付月間2025」に参画しています。
12月中のテックブログのpv数に応じて、アフリカの支援団体に寄付をおこないます。
https://giving12.jp/
ーーーーーーーーーー
カジュアル面談では、会社の雰囲気や仕事内容についてざっくばらんにお話ししています。
履歴書は不要、服装自由、原則オンラインです。興味を持っていただけた方は、
ぜひ以下からお申し込みください。
皆さんにお会いできることをサクラグメンバー一同、心より楽しみにしております!
カジュアル面談応募フォーム