Qemu有自己的Trace框架并支持多個(gè)debug/trace后端包括:nop, dtrace, ftrace, log, simple, ust,可以幫助我們分析Qemu中的問(wèn)題。關(guān)于這些backend的介紹,可以看這個(gè)鏈接:http://repo.or.cz/w/qemu/stefanha.git/blob_plain/refs/heads/tracing:/docs/tracing.txt,如果現(xiàn)有的trace point不能滿(mǎn)足你的需求,里面還有介紹如何添加新的trace point。這篇文章主要介紹一下Qemu內(nèi)嵌的一個(gè)backend:Simple trace的使用,它不需要安裝任何其他軟件就可以使用。
成都創(chuàng)新互聯(lián)公司主要從事做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)汕頭,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108
1)編譯qemu時(shí)要enable trace backend
./configure --enable-trace-backends=simple
2)添加你想要trace的event
$ cat /tmp/events
virtio_blk_req_complete
virtio_blk_handle_write
3)啟動(dòng)虛擬機(jī)
-trace events=/tmp/events,file=trace.bin
其中,在正常啟動(dòng)的的qemu程序中加入"-trace events=/tmp/events,file=trace.bin",其中/tmp/events就是要跟蹤的event,而trace.bin就是trace產(chǎn)生的文件,不能直接讀,而要通過(guò)工具來(lái)讀。
4)獲取trace結(jié)果
simpletrace.py trace-events trace.bin
5)有些模塊也實(shí)現(xiàn)了自己的pretty-print工具,可以更方便的查看結(jié)果。比如你trace了9p的模塊,可以通過(guò)以下工具查看。
analyse-9p-simpletrace.py trace-events trace.bin