しょんぼり技術メモ

まいにちがしょんぼり

Windows on VMware Workstation リモートデバッグ

Dokan(http://dokan-dev.net/ : FUSE on Windows)をいじってみようと思ったので、VM上にテスト環境を構築。

前提環境と準備

今回はVisualStudio2008 on WinXP Pro SP3で開発を行い、デバッグVMware Workstation 6.51上のWinXP Pro SP3で行うことにする。
とりあえず、VM上のWindows(以下ゲスト)にDokanLibraryをインストーる。

で、VMware側で共有フォルダとして M:\XP for FUSE\share を設定しておく。これでゲストから \\.host\Shared Folders\share としてホストのshareディレクトリにアクセスできる。
ついでに、ここをZ:\としてマウントしておく。(マイネットワーク右クリ→マウント)

共有フォルダである M:\XP for FUSE\share 以下で開発しても良いが、今回は別ドライブ上に開発ファイルを置きたかったので、ビルドしたファイルが出力されるフォルダをshareフォルダ以下にリンクする。
リンクの作成には、リンク作成拡張(http://www.vector.co.jp/soft/dl/winnt/util/se184746.html)がオススメ。
開発ファイルのディレクトリ\bin を M:\XP for FUSE\share\exe としてリンクしておく。これで、ゲストから見て Z:\exe\Debug\hoge.exe のように作成したファイルにアクセスできる。

設定

VisualStudio2008(以下VS)を起動し、メニューの VMware → オプション を開く。
"仮想マシン"にはテスト環境のvmxファイルを指定。
"コマンド"には実際に走らせたいバイナリのパス、つまり z:\exe\Debug\DokanTest.exe を指定。
"コマンドの実行"は"コマンド"のパスの扱いの設定で、今回は"ゲスト パス"を指定。
残りはデフォルトで問題なさそう。

リモートデバッグにはTCP/IPUDP/IPが使われる。ゲストにおいて、いくつか必要なポートを解放してあげれば良いのだが、どうもうまくいかない。
VS経由でVMware Workstation側から送り込まれるリモートデバッガの実体について、ポート解放の設定が必要なようだ。
いまいちやり方がよくわからずうまくいかないので、マニュアルにも書いてあるとおりにゲストのファイアウォールを無効化した。なんだか負けた気分。

あとは、メニューから VMware仮想マシンデバッグを開始... でOK。