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 --enable-debug --enable-kvm --target-list=x86_64-softmmu,x86_64-linux-user
$ make
$ make install
2)添加你想要trace的event
$ cat /tmp/events
virtio_blk_req_complete
virtio_blk_handle_write
virtio_blk_handle_read
3)启动虚拟机
$ qemu-system-x86_64 /root/CentOS---6.6-64bit---2015-03-06-a.qcow2 -smp 4 -m 4096 --enable-kvm -nographic -net nic -