Sqlite的编译、使用和调试

本文介绍了如何在mingw环境下编译SQLite,利用GCC的特定参数进行编译以生成调试信息。通过开启SQLite的调试属性查看虚拟机指令集,并讲解了如何使用Eclipse与GDB调试SQLite源代码,包括安装CDT插件、导入源码、设置调试配置及断点,最终实现对SQL命令的逐行调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先准备好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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值