yzh第六课(NEMU代码导读)笔记
了解程序/工具行为的两种方法:
1. 看源码:可以得知每一处静态细节,但较繁琐
2. 看踪迹:容易了解运行动态行为,但不全面
下手要选容易的方式:看踪迹

啊

啊

啊
在面对比较大的项目时,如果这个项目有自带的 log/trace,那简直就是无价之宝

a

a
使用 man console_codes 可以看到很多类似于 “如何使用 printf 打印有颜色的输出 / 或者叫一声” 的内容
使用 man setbuf 可以看到关于输出终端缓冲区的一些内容
a

这是设置项目 Log 机制的一个非常好的例子(重点:1. 使用 __FILE__, __LINE__, __func__ 可以非常方便后期的调试 2. 宏展开后,字符串末尾自动加'\n')
a

把内存设置为随机值的原因是:如果内存初始化为0,当nemu上的程序中存在某些bug时,可能不会被暴露出来,因此设置为随机值让它暴露出来
a

可以使用 clang-format 等代码格式化工具来格式化 预编译 输出,可大幅提高工作效率。
(能让电脑做的事情,就别人工去做)
a

有些宏看起来多此一举,实际上是为了方便编译器优化它们
a

最好的代码是 1. 不言自明 2. 不言自证的
a

Kconfig 的本质:是一个用来维护 宏之间的依赖关系 的工具
a

Menu config
a
a

Makefile 中的黑白名单
a

a

a

浙公网安备 33010602011771号