我想调试一个从修改后的 SQLite 代码创建的 SQLite 数据库实例。当用户从数据库中选择一些数据时,我想单步执行 SQLite 源代码,看看 SQLite 的逻辑是什么。这样做的目的是我想看看我是否可以在 SQLite 源代码中添加一个 SELECT 触发器,并在其中创建一个带有我的新型触发器的 SQLite 数据库。目前 SQLite 仅支持 UPDATE、INSERT 和 DELETE 触发器。
到目前为止,我已经从http://www.sqlite.org/index.html下载了“合并”SQLite 源代码并设法在 Visual Studio 2010 中构建它。但是我不知道如何对其进行调试。我尝试创建一个使用 SQLite 项目作为项目参考的测试 C# Web 应用程序 - 但它不允许我将其添加为参考(引发错误说“无法添加对 'mySQLiteproj' 的引用”,这太棒了有用)。我当前的结构只是一个空的 C 项目,其中包含 sqlite3.c 和 sqlite3.h 文件。
SQLite 代码是用 C 编写的,我不熟悉,所以也许我完全走错了路?我来自 C# 背景,所以请不要建议我使用 Visual Studio 报废,而是使用记事本或其他一些“硬核”IDE :)
简而言之:如何调试 SQLite 源代码?
编辑:我已按照 Sergey 的建议将 shell.c 文件添加到项目中,现在可以“进行”调试。它会在 shell.c 中打断点,但不会在 sqlite3.c 中打断。我可以作为 shell.c 的函数调用进入 sqlite3.c,但这些行似乎与正在运行的代码不匹配。一半的行是灰色的(也许是 resharper?)并且没有变量的自动监视或代码当前正在中断的行的突出显示。