调试技巧
-
如果仿真很慢,可以把所有
check
函数注释掉,直接测试后面的代码。 -
在调试时可以随意修改代码,比如调换顺序或添加 print 调试信息等等。但最后需要运行完整的原始版本。
-
你可能需要利用
objdump
工具对ucore
和rbl
进行反汇编来查看具体执行的指令。riscv64-unknown-elf-objdump -d bin/kernel > kernel.S
riscv64-unknown-elf-objdump -d rbl > rbl.S
-
在这个实验中 QEMU 的最大作用是可以跟 CPU 的仿真结果做对拍,方便 debug。运行 QEMU 时加上 -d in_asm 参数就可以输出执行的指令(不严格是指令序列),仿真时也可以加上输出 pc,两边 diff 一下即可。
-
可以在前面几个规模较小的 lab 上进行测试,查看 CPU 出现的问题。但是前面几个 lab 没有做更新,可能会无法编译。因此使用时需要参考 lab8 对应的 commit 记录对 lab 内的文件进行修改后再编译。
最后更新:
2022年11月13日
作者: