debug print on HVM


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Xen HVMのPCエミュレータのデバッグプリントをする

Xen HVMはqemu-dmというqemuのようなPCエミュレータによってデバイスをエミュレートしています。このデバイスエミュレータをデバッグしたいときには以下のようなことをします。
まず、デバッグメッセージは
/var/log/xen/qemu-dm.数字.log
に出力されます。普通にXenをインストールし、HVMを起動した場合は5行程度のメッセージしか出力されていません。

通常はデバッグメッセージは
#ifdef DEBUG_デバイス名
       fprintf(logfile,"hogehoge");
#endif
のように出力します。
#define DEBUG_デバイス名
は通常はコメントアウトされているのでデバッグメッセージは出力されません。
このコメントアウトをはずすか、ifdefをコメントアウトすればデバッグメッセージは出力されます。

これを利用して、任意の場所が実行されているかどうかを検証することができます。
デバイスエミュレータの改変にどうぞ。

Xen 自身のデバッグプリント

Xen内でのデバッグプリントは
gdprintk(loglevel,"hogehoge\n",...)
でできます。
loglevelの定義は
-xen/include/xen/config.h
     39 #define XENLOG_ERR     "<0>"
     40 #define XENLOG_WARNING "<1>"
     41 #define XENLOG_INFO    "<2>"
     42 #define XENLOG_DEBUG   "<3>"
     43
     44 #define XENLOG_GUEST   "<G>"
     45
     46 #define XENLOG_G_ERR     XENLOG_GUEST XENLOG_ERR
     47 #define XENLOG_G_WARNING XENLOG_GUEST XENLOG_WARNING
     48 #define XENLOG_G_INFO    XENLOG_GUEST XENLOG_INFO
     49 #define XENLOG_G_DEBUG   XENLOG_GUEST XENLOG_DEBUG
     50
 
このあたりです。

出力を見るには以下のコマンドを使います。
xm dmesg

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。