官方文档中

Sqlite 源码阅读

  • 首先,你得需要一份源码,建议选择文件大的那个下载
  • 你要能运行它,这份文档中描述了该如何编译
  • 你需要知道,调试源码的方法论当你耐心的阅读完这份PPT,跟着作者的思路,去了解是如何阅读一个未知代码的方法,相信这些方法能给你带来启发
  • 数据库的架构,完整的阅读完,这一部分,记住文中的那张图,能在你脑海中,有一个大致的方向
  • 这篇文章描述了 Sqllite 的测试方法,包括用 Tcl 脚本,和一些覆盖性的测试,难以相信,仅仅有8w行的 Sqlite 源码,有大约50万行的测试代码.这个链接描述了测试的一些细节
  • 如果你对存储结构感兴趣,可以阅读这一节文档它会描述,sqlite文件,是按怎么样的二进制格式写入磁盘,也会描述,每个 bit 表示什么意义,如果你自己生成一个sqlite文件,用hexeditor打开它,并且查看每个 bit 的意义,能让你更深刻的体会到系统软件对存储空间的锱铢必较,hexeditor有很多种类,在这个页面你能看到对这些 editor 的比较
  • 如果你觉得用 GDB 调试代码不直观,你可以尝试用 Clion 这个 IDE 进行调试,你需要自己编写 CmakeList.txt 文件
  • 你可以在我在stackoverflow中的提问,另外一个类似的提问,你可以在简书上查看用 Clion debug SQLite 源码的详细步骤

我找出的SQLite源码Bug

  • 得到了作者的认可,你可以在这里找到修改的代码