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