第 16 章:调试器实现
学习目标
- 实现单步执行
- 实现断点
- 查看寄存器和内存
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();
}
}
}