五天时间,把6.828的Lec 1和2的课程材料、源码读完,然后把Lab1做完了。
前七道题不用细说,都是概念和操作性的。中间碰到一个很囧的问题,在ssh下,make qemu会失败,改成make qemu-nox就OK了(实际上是给了qemu一个-nographic参数)。折腾了大半个钟头,其实manual里已经写清楚了——以后先把manual看完,再动手。
第8题完成cprintf的%o方式,完全仿照%d部分的代码就OK了,其中有个base被传入printnum(),是进制的基数,改一下就好。
11和12题完成backtrace指令,这个是重头戏。函数调用栈回溯的主要思路是: