WinDbgでGuestOSに接続

| | コメント(1)

WinDbgでデバッグする場合は、2台のマシンをシリアルポート、IEEE1394, (今のWinDbgはUSB 2.0をサポート)などで互いに接続して行うのが普通です。
もちろん、ローカルデバッグをする方法もありますが...、普通はしないよね。

シリアルポートは遅そうだし、IEEE1394は全てのマシンについていない。
USBで接続する方法がよさげ。(どうやってやるんだろう?)

けど、VMWare上でカーネルデバッグする方がスマートです。
同じ画面でできるし、ホストにディスクキャッシュされる分、ブートもかなり速い。

で、どうやって行うかですが、仮想シリアルポートを使うそうです。

1. 「仮想マシン設定の編集」でシリアルポートを追加します。
2. 仮想シリアルポートとして、「名前付きパイプに出力」を選択します。
3. 名前はデフォルトの「\\.\pipe\com_1」のまま、「名前付きパイプはサーバーです」を選択、「接続先はアプリケーションです」(パイプがサーバーだから関係ない?)を選択します。
6. 詳細設定で、「ポーリングでCPUを放棄する」をチェックします。

仮想マシンの設定は以上です。

次に、ゲストOSのWindowsでブートオプションを指定します。
1. BOOT.INIを変更します。"/debugport=COM1 /baudrate=115200"を追記します。

これで完了です。実際にやってみます。

1. VMWareを起動します。
2. ゲストOSを起動します。
3. ゲストOSの起動直後に、WinDbgで"Kernel Debug"を選択します。COMポートは"\\.\pipe\com_1,pipe"、baudrateは115200です。

カーネルの出力がいっぱいできてきます。ちょっと感動します。ですが、すげぇー遅せぇ。
やっぱ実機でやっても一緒だよね、この遅さ。

コメント(1)

すんません、普通にローカルデバッグに使ってます。。。

コメントする


画像の中に見える文字を入力してください。