QEMUとKQEMUのGPL化

QEMUとKQEMUがGPLになるようです。KQEMUは、それにともないソースコードが公開されています。
KQEMUがGPLになるのはいいのですが、KVMやVirtualBoxがある現状を見るとどう扱っていいのか考えてしまいますね。

MinGWのランタイムライブラリ

QEMUを作るときに、MinGWのランタイムライブラリmingw-runtime-3.11.tar.gzを使うと、QEMUが動きません。例えば、MinGW-5.1.2.exeとかMinGW-5.1.3.exeでMinGW(gcc-3.4.2)をインストールすると、このライブラリが使われるため、Windows 2000ゲストが、unhandled win32 exceptionで終了してしまいます。mingw-runtime-3.10.tar.gzにダウングレードすると直ります。
最初、何が悪くて動かないかわからず、ゲストOSを3つほどだめにしてしまいました。

VirutalBoxのWindowsホストでのデバッグの仕方

ソースコードから、デバッグバージョンを作ります。
kmk BUILD_TYPE=debug
実行ファイルは、outwin.x86debugbinにできます。
Windowsホストだと、VisualStudio用のプロジェクトを作っているわけではないので、実行ファイルを指定してデバッグする必要があります。次のところにやり方が書いてあります。
http://msdn2.microsoft.com/ja-jp/library/0bxe8ytt(vs.80).aspx
その後、プロジェクトのプロパティでコマンド引数を設定してデバッグ開始をすれば良いです。
実際にデバッガ上で動かしてみると、ステップ実行すると画面がフリーズしてしまうことが問題でした。ブレークポイントを指定しての実行はできるみたいです。
また、ソースコードをプロジェクトに登録しないと、ソースコード内の検索ができないことが不便かなと思います。

VirtualBoxのLinuxホストでのデバッグの仕方

Linuxホストで、VirtualBoxをデバッグするのは次のようにするそうです。
まず、ソースコードからデバッグバージョンを作ります。
kmk BUILD_TYPE=debug
次に、カーネルモジュールがロードされ/dev/vboxdrvにリードライトの権限があることを確認します。
次に、ビルドしたディレクトリからVirtualBoxサービスを立ち上げます。
~/VirtualBox/.../out/.../bin $ LD_LIBRARY_PATH=. ./VBoxSVC
次に、別のターミナルから、デバッガー上でVirtualBoxを動かします。
~/ViratualBox/.../out/.../bin $ LD_LIBRARY_PATH=. gdb --args ./VirtualBox -startvm [VM NAME]
デバッグバージョンのVirtualBoxは、いろいろなところにAssertionが入っていて、おかしなとことがあればログファイルに記録されているそうです。