为了方便调试,Qemu有个Trace机制,我觉得这个是阅读Qemu源码的最佳切入点。我一直认为理解软件原理有两个关键点:层级和探测点,层级就是软件的各个模块,探测点就是各个模块之间通讯的关键点。Qemu的Trace标记的方法就是Qemu系统的探测点,通过这些探测点就可以确定各个模块是否运行正常!
下面我详细分析一下Qemu标记的各个Trace方法:
首先我们通过Trace方法可以很快获得Qemu的各个模块,其实Qemu的模块也可以通过Qemu的QOM架构看出来。如何通过Trace方法获得模块信息?很简单看Trace方法所在的源码文件。