Microsoftが配布しているWindowsのデバッガ、windbgというものがある。
どうもよくわからない不具合の出るソフトがあったので、VirtualServer仮想PC上でwindbgを走らせてみようと思ってMicrosoftのKBでwindbgの情報を探してみる。
VirtualServer・VirtualPCのホストOSから、ゲストOSのカーネルにアタッチする方法があったので試してみた、多少本筋からずれた気もするがやむなし。
Part1では仮想PCのカーネルにアタッチする方法、Part2はVirtualServer自身のデバッグ方法?かな、2はあまり読んでない。
詳しくはPart1を見るとわかるので、設定する箇所を画像でメモ。

画像:ゲストOSのCOM1を名前付きパイプに接続
ゲストOSの COM1 に「\\.\pipe\com2」という名前付きパイプ(※ややこしくて失礼、com2の部分は名前なので何でもよい)に接続します。
UNCなので途中のピリオドはlocalホストを表し、もちろんUNCパスなら他のPCでもよい(はず)。
ゲストOS上での準備としてboot.iniをデバッグオプション有効にしておく必要があります、msconfigコマンドなどを使用して設定。

画像:デバッガも名前付きパイプに接続
ゲストOSのカーネルにアタッチする準備。
画像はwindbgの[File]メニューからカーネルデバッグを選択した後の名前付きパイプへの接続設定。

画像:仮想OSのカーネルデバッグ出力が得られている
windbgを待ち状態にした後、ゲストOSを起動したところ。アタッチはいつでもできる模様。
さっそくいろいろ例外を吐いてくれている、とりあえずF5で先に進める。

画像:Breakしてレジスタを表示してみる
折角なので「Ctrl+Break」!!カーネルを止めてみる。
普段OSが勝手に止まると色々冷や汗ものだが、自分の意思で止めるというのはなかなかどうして面白い。
しかしプログラミングの知識があるわけでないので、個人では「!analyze -v」コマンドで自動解析をしてもらうくらいしか使い道がない。
困ったらプログラムがわかる人に聞いてみよう。
最近のコメント