[M.D.L] VMware 3 で Kernel Debugging!

<Home> → <M.D.L.> → <[M.D.L] VMware 3 で Kernel Debugging!>

はじめに

VMware 上で Kernel Debug を行った時の備忘録です。「VMware って何」って方には <VMware 関連> を参考にどうぞ。

VMware 上で Kernel Debug が出来る利点を以下に挙げてみました。

今回は Windows 2000(Host OS)、 Windows 2000(Guest OS) で動作確認を行いましたが windbg であれば、ほぼ同様の手順で実現可能と思われます。


実践編

[Usage Scenarios: Debugging Over a Virtual Serial Port(VMware)] の page が元ネタです。

以下の手順で行いました。

  1. windbg を入手します
    DDK 付属の windbg ではサポート出来ないようです。[Debugging Tools for Windows(Microsoft)] から最新の windbg を入手してください。今回、私が使用した windbg のバージョンは「Version 4.0.18.0, December 21, 2001」です。
    windbg は Host OS 側に Install してください。
  2. Guest OS に Serial port を追加します
    設定は以下の通り。
    『名前付きパイプを使用(N):』『\\.\com_1』『名前付きパイプはサーバーです。』『接続先はアプリケーションです。』『ポーリングでCPUを放棄する(Y)』 にチェック。

    Guest OS の Serial port 設定

  3. Guest OS の boot.ini を書き換えます
    以下の1文を追加します。baudrate は最初は高めに設定しない方が良いです。私の環境では 115200bps だと起動しませんでした。

    multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect /debugport=COM1 /baudrate=57600

  4. Guest OS を起動します
    起動画面で「Microsoft Windows 2000 Professional [Debug Enabled]」を選択し、起動します。手馴れてくればこれで問題ないのですが、ココロに余裕が欲しいのであれば、起動画面で windbg を起動するまで待っていた方が良いかもしれません。
  5. Host OS 側の windbg を起動します
    気をつけて欲しいのは VMware 3.1 の Help には間違った記載がされているようです。英語版、日本語版共に同様でしたが、元ネタが正しいようです。こっそり修正したのでしょうか。
    以下のパラメータで windbg を起動します。上手く動作すれば Connecting 待ち状態になります。

    windbg -k com:port=\\.\pipe\com_1,pipe

  6. windbg に Kernel Debug メッセージが表示されれば成功です
    画面は Windows 2000(Host OS) 上に Windows 2000 (Guest OS) を起動させ、windbg で表示させている所です。

    VMware で Kernel debug を実行している画面
    拡大画面

気が付いたこと

(02.05.03:記載)


<Home> → <M.D.L.> → <[M.D.L] VMware 3 で Kernel Debugging!>
Copyright (c) 2002 Makoto NARA(Mc.N), All rights reserved.
[Terms of Use]

Valid CSS! Valid HTML 4.01!