复杂项目源码阅读方法
基于镜像的阅读方法(推荐)
以U-Boot为例子,由于U-Boot下有很多的Arch和Board,同一个函数可能对应很多个不同的实现,此外函数指针也很常见,这些给阅读代码掌握执行流带来了一定的困难。
在阅读实践中,笔者发现可以先编译一个elf,然后使用nm工具和addr2line工具,可以精准定位目标函数在源代码中的位置。
基于网站的阅读方法(推荐)
很多网站对源代码中的符号做了链接,能够通过符号跳转到定义处。
例如 https://elixir.bootlin.com/linux/latest/source
该网站中支持常见的开源项目的源码
自建ctags(不推荐)
使用ctags工具,在本地对符号建立链接,最终实现的效果和上面的网站相似。