Monday, 21 December 2015

Linux kernel debug

毎年出している課題なんですが、今年は楽勝なはず。

* なにせ、去年の修士に virsh 経由で kernel debug できる script 書いてもらったからな

なんだが、システム更新で動かなくなっているらしい。で、ソースを見ると、

* 肝心な python script 部分がない

あぁ、hg add し忘れてるな。そういう奴だったっけ。システム更新前までは、そこにあったはずだけど。まぁ、版管理に入ってないソースは消失するものなのさ。

でも別にやることは、それほど難しくない。

http://www.ie.u-ryukyu.ac.jp/%7Ekono/lecture/os/ex/problem/165.html

ここに書いてあるようにやれば良いのだよ。

なのだが、

* kernel のcompileが終わらない

なんかdevice driverが山ほど。さらに、

* Linuxのgmakeの-jって、プロセス無限に作る

らしい。なので、make -j 8 とか打つ必要があるらしい。

* make menuconfig から device driverを削除しまくり

一度、rootでcompileしてしまって、ファイルが書けなくて、asncompilerがSEGVとかもありましたが、kernelはできました。

後は、

virsh edit

で、

<domain type='kvm'>を <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

に書き換えて、

<qemu:commandline>
<qemu:arg value='-s'/>
</qemu:commandline>

を付け加えればよいらしい。なんだけど、これだと gdbの接続 port 1234 決め打ちなので、それをなんとかしないと。

<qemu:commandline>
<qemu:arg value='-gdb'/>
<qemu:arg value='tcp:1245'/>
</qemu:commandline>

ぐらいで良いはずだ。これをやる python script を書けばよいだけね。

なんだけど、python script の xml の扱いが良くわからんので、

* 今日はこの程度で勘弁しといたる

年内の授業は明日で最後だけどね。
Post a Comment