qemu中的tracing使用

在configure的時候加入 --enable-trace-backend=simple 選項,其中trace的方式有幾種,這裏使用simple,具體可以參考qemu自帶的文檔(具體路徑在docs/devel/tracing.txt),如果現有的trace point不能滿足你的需求,裏面還有介紹如何添加新的trace point。這篇文章主要介紹一下Qemu內嵌的一個backend:Simple trace的使用,它不需要安裝任何其他軟件就可以使用。

1)編譯qemu時要enable trace backend

$ ../configure --enable-trace-backends=simple --enable-debug --enable-kvm --target-list=x86_64-softmmu
$ make
# 這裏是按照README文件編譯,即在qemu源碼根目錄下建立build文件夾,之後在該文件夾下configure,make

2)添加你想要trace的event

$ cat /tmp/events
memory_region_ops_read

3)啓動虛擬機

$ cd x86_64-softmmu/
$ ./qemu-system-x86_64 xxx -trace events=/tmp/events,file=trace.bin

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

4)獲取trace結果

$ python2 ../scripts/simpletrace.py ../trace-events-all trace.bin
#注意如果系統默認的python是python3,那麼對於版本較低的qemu其還沒有支持python3需要手動用python2執行

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

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