我想调试一个由修改后的SQLite代码创建的SQLite数据库实例。当用户从数据库中选择一些数据时,我想逐步了解SQLite源代码,看看SQLite的逻辑是什么。这样做的目的是,我想看看是否可以在SQLite源代码中添加一个SELECT触发器,并在其中创建一个带有新类型触发器的SQLite数据库。目前,SQLite只支持更新、插入和删除的触发器。
到目前为止,我已经从SQLite下载了“合并”的http://www.sqlite.org/index.html源代码,并设法在Visual 2010中构建了它。但是,我不知道如何针对它进行调试。我尝试创建一个测试C# web应用程序,该应用程序使用SQLite项目作为项目引用--但它不允许我将其添加为引用(抛出一个错误,说明“无法添加对'mySQLiteproj‘的引用”,这是非常有用的)。我的当前结构只是一个空的C项目,其中包含sqlite3.c和sqlite3.h文件。
SQLite代码是用C编写的,我对它不熟悉,所以也许我走错了路?我来自C#背景,所以请不要建议我放弃使用Visual,而是使用记事本或其他一些“硬核”IDE :)
简而言之:如何调试SQLite源代码?
编辑:,我已经按照Sergey的建议将shell.c .c文件添加到项目中,现在可以“有点”调试了。它将命中shell.c .c中的断点,而不是sqlite3.c。我可以作为shell.c .c中的函数调用进入sqlite3.c,但是这些行似乎与正在运行的代码不匹配。一半的线是灰色的(也许是被重装的?)并且没有自动观察变量或突出显示代码当前正在中断的行。
发布于 2012-09-14 07:41:08
要调试在“不熟悉”语言上编写的库代码,最好从一开始就开始。
在这里,算法:
我创建了基于cmake的SQLite合并构建,以便您可以生成Visual解决方案,将其构建为调试目标,然后进行调试。希望它会有用。
https://stackoverflow.com/questions/12419443
复制相似问题