学习目标

  • 实现单步执行
  • 实现断点
  • 查看寄存器和内存

16.1 思考:如何调试模拟器?

程序出错了,怎么找问题?

答案:调试器

16.2 单步执行

void debugger() {
    while (1) {
        printf("(nemu) ");
        char cmd[64];
        scanf("%s", cmd);

        if (strcmp(cmd, "si") == 0) {
            cpu_exec_once();
        } else if (strcmp(cmd, "info") == 0) {
            dump_registers();
        }
    }
}

下一步

第 17 章:性能优化

更新时间: