skills未读
gdb调试CMU15445-P3gdb调试CMU15445-P3简介在小型的项目中,代码流程都很清楚,并没有涉及到复杂的函数调用与层层封装,然而在一个比较完整的项目中,层与层之间的高度封装,函数流的调用,让我们想理解某一块的代码实现增加了许多困难。
为此,使用 gdb 调试代码可以很好的显示中间过程以及调用流,以方便我们更好的理解某一块代码的实现。
本文并不涉及到 gdb 相关的基础语法
基础语法可以参考 GDB调试
准备工作由于在 CMU15445 的 P3 中需要实现几个执行器与优化算子,所以必须要理解此处的代码流程是什么。
当我们运行它所要求的 SQL 语句之后
报错是由于 SeqScanExecutor 没有实现
所以现在应该找到该类所对应的文件
那么该项目是如何执行到这个位置呢?传入参数的含义分别是什么呢?
此时我们就可以通过 gdb 来定位执行流程
如上图, 在使用 gdb 启动项目之后,我们在需要定位的地方打上断点,之后就可以开始调试。
定位流程输入对应的语句
12CREATE TABLE t1(v1 INT, v2 VARCHAR(100));SELECT * FROM t1;
我们发现 ...