0%

qemu里增加trace的方法

  1. 在要加trace的模块对应的文件中加:#include “trace.h”

  2. 在trace.h文件里写 #include “trace/trace-xxx_xxx.h”

    注意这里的连接符必须按照上面,其中的xxx是模块代码的路径,比如你的模块在qemu代码
    的hw/arm下,如上应该写成#include “trace/trace-hw_arm.h”, 每一级路径都是下划线
    连接。

  3. 在相同的目录创建trace-events文件,并在其中定义trace。定义的格式大概是这样的:

    1
    example(uint8_t level, uint32_t offset, uint64_t pte) "level: %u, pte offset: %u, pte value: 0x%lx"

    “example”是trace点的名字,括号里是各个参数的类型,引号里是输出的内容。

  4. 在模块文件需要使用该trace点的地方使用 trace_example(xxx, xxx, xxx); 的方式调用。

详细的说明可以参考qemu的开发手册:https://qemu-project.gitlab.io/qemu/devel/tracing.html