SAKURUG TECHBLOG

RemoteDebuggerを使用して仮想OS上のアプリをデバッグする。

timestampauthor-name
Hayato

こんにちは、今回はVirtualBox上の仮想OSで動作しているプロセスに、ホストOSからアタッチしてデバッグする方法をご紹介いたします。

はじめに

 VirtualBoxとは

 既存のPC(ホストOS)上で、別のOS(ゲストOS)を仮想的に動かすことができる、無料の仮想化ソフトウェアです。これにより、複数のOSを同時に利用したり、テスト用の環境を手軽に構築したりすることができます。

今回はホストOS:Windows11、ゲストOS:Windows10で実施します。

 アタッチとは

 すでに起動中のプロセスにデバッガーを接続し、プログラムのデバッグを行える機能です。

使用ツール

 ・VirtualBox(Windows10のイメージをインポートし、デバッグしたいアプリがインストールされている状態)

 ・VisualStudio2017

 ・RemoteDebugger(VisualStudio上からインストールすることができる)

VirtualBoxの設定

 ネットワークの設定

  ・設定→ネットワーク→アダプター1→割り当てを「ホストオンリー」にします。

 共有フォルダの設定

  ホストOSからゲストOSへファイルを移動する際に使います。

  ・設定→共有フォルダ→追加(+ボタン)→「フォルダーのパス」と「フォルダ名を」設定します。

  ・「自動マウント」と「永続化する」にチェックを入れます。

   →OK

ホストOSの設定

 ・コントロール パネル→システムとセキュリティ→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

VisualStudioの設定

 ・「デバッグ」→「オプション」

 ・デバッグ→マイコードのみを有効にするのチェックをはずします。

 ・デバッグ→シンボル→「+」→シンボルファイル(.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/
ーーーーーーーーーー

▼高校生向けインターン実施中!

弊社では高校生向けにインターンを行っております!
現役エンジニア指導の下、一緒に働いてみませんか?

高校生インターン応募フォーム

▼カジュアル面談実施中!

カジュアル面談では、会社の雰囲気や仕事内容についてざっくばらんにお話ししています。
履歴書は不要、服装自由、原則オンラインです。興味を持っていただけた方は、
ぜひ以下からお申し込みください。

皆さんにお会いできることをサクラグメンバー一同、心より楽しみにしております!

カジュアル面談応募フォーム

記事をシェアする

ABOUT ME

author-image
Hayato
2020年中途入社。システムエンジニア。お客様の現場で業務システムの開発(Qt)を行っています。