DiffTest核心思想:对于根据同一规范的两种实现, 给定相同的有定义的输入, 它们的行为应当一致。
DiffTest基本逻辑:处理器运行一条指令,模拟器(如NEMU)也运行相同的指令,然后比较两者的状态。由于每运行一条指令,都会对比关键寄存器的数值,所以能够实现动态实时比对,从而更容易定位bug。
为了更好的学习研究NEMU中DiffTest功能,我们分如下章节进行介绍。
1《NEMU模拟器源码编译与使用》
2《QEMU模拟器源码编译与使用》
3《NEMU DiffTest基本原理》
4《搭建NEMU与QEMU的DiffTest环境(动态库方式)》
5《搭建NEMU与QEMU的DiffTest环境(Socket方式)》
6《NEMU与QEMU联调经验》
7《NEMU中DiffTest移植》