qemu trace使用

Qemu有自己的Trace框架並支持多個debug/trace後端包括:nop, dtrace, ftrace, log, simple, ust,可以幫助我們分析Qemu中的問題。關於這些backend的介紹,可以看這個鏈接:http://repo.or.cz/w/qemu/stefanha.git/blob_plain/refs/heads/tracing:/docs/tracing.txt,如果現有的trace point不能滿足你的需求,裏面還有介紹如何添加新的trace point。這篇文章主要介紹一下Qemu內嵌的一個backend:Simple trace的使用,它不需要安裝任何其他軟件就可以使用。

1)編譯qemu時要enable trace backend
./configure --enable-trace-backends=simple

2)添加你想要trace的event
$ cat /tmp/events
virtio_blk_req_complete
virtio_blk_handle_write

3)啓動虛擬機
-trace events=/tmp/events,file=trace.bin

其中,在正常啓動的的qemu程序中加入"-trace events=/tmp/events,file=trace.bin",其中/tmp/events就是要跟蹤的event,而trace.bin就是trace產生的文件,不能直接讀,而要通過工具來讀。
4)獲取trace結果
simpletrace.py trace-events trace.bin

5)有些模塊也實現了自己的pretty-print工具,可以更方便的查看結果。比如你trace了9p的模塊,可以通過以下工具查看。
analyse-9p-simpletrace.py trace-events trace.bin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章