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工具查看。

posted @ 2022-06-10 07:22  main_c  阅读(1040)  评论(0编辑  收藏  举报