gpt4 book ai didi

c - 如何使用 Visual Studio 调试 SQLite 源代码

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:40 24 4
gpt4 key购买 nike

我想调试一个由修改后的 SQLite 代码创建的 SQLite 数据库实例。当用户从数据库中选择一些数据时,我想逐步查看 SQLite 源代码并查看 SQLite 的逻辑是什么。这样做的目的是我想看看我是否可以向 SQLite 源代码添加一个 SELECT 触发器,并创建一个带有我的新型触发器的 SQLite 数据库。目前 SQLite 只支持 UPDATE、INSERT 和 DELETE 的触发器。

到目前为止,我已经从http://www.sqlite.org/index.html 下载了“合并”SQLite 源代码。并设法在 Visual Studio 2010 中构建它。但是我不知道如何针对它进行调试。我尝试创建一个测试 C# Web 应用程序,该应用程序使用 SQLite 项目作为项目引用 - 但它不会让我将其添加为引用(抛出错误提示“无法添加对‘mySQLiteproj’的引用”,这是 SOOO有用)。我当前的结构只是一个空的 C 项目,其中包含 sqlite3.c 和 sqlite3.h 文件。

SQLite 代码是用我不熟悉的 C 语言编写的,所以也许我完全走错了路?我来自 C# 背景所以请不要建议我放弃使用 Visual Studio 而是使用记事本或其他一些“硬核”IDE :)

简而言之:如何调试 SQLite 源代码?

编辑:我已经按照 Sergey 的建议将 shell.c 文件添加到项目中,现在可以进行“某种程度上”的调试。它会在 shell.c 中命中断点,但不会在 sqlite3.c 中命中。我可以作为来自 shell.c 的函数调用进入 sqlite3.c,但这些行似乎与正在运行的代码不匹配。一半的行是灰色的(也许是 resharper 造成的?)并且没有自动监视变量或突出显示代码当前中断的行。

最佳答案

要调试用您“不熟悉”的语言编写的库代码,最好从头开始。

这里是算法:

  1. 学习语言(C)
  2. 学习您的工具(Visual Studio 中的调试器)
  3. 了解目标(SQLite - 是为其他人提供 API 的库,因此您需要在 SQLite API 上设置断点,例如 sqlite3_open() 和 Visual Studio 中的“运行”shell.c 源文件)

我创建了 cmake-based build for SQLite amalgamation因此您可以生成 Visual Studio 解决方案,将其构建为调试目标,然后进行调试。希望它有用。

关于c - 如何使用 Visual Studio 调试 SQLite 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12419443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com