首先准备好gcc的编译环境,这里我用的是mingw。
然后下载sqlite3的源代码。
然后用如下的命令进行编译:
gcc -DSQLITE_DEBUG -ggdb *.c -o sqlite3
其中的编译参数“SQLITE_DEBUT”是过会用来理解sqlite时使用的,详细请参考附录。
编译参数-ggdb是用来生成gdb调试信息的,在待会源代码的调试中会用到。
接着运行编译好的sqlite3.exe
在命令行中首先打开调试属性(用于查看sqlite的虚拟机的指令集)
PRAGMA vdbe_trace=ON;
最后就是运行sqlite语句并分析。
sqlite> create table cust(id int not null primary key, name char(30));
sqlite> PRAGMA vdbe_trace=ON;
VDBE Execution Trace:
0 Expire 0 0 0 00
1 Halt 0 0 0 00
sqlite> insert into cust values(21, "harry");
VDBE Execution Trace:
0 Trace 0 0 0 00
1 Goto 0 20 0 00
20 Transaction 0 1 0 00
21 VerifyCookie 0