-
在win vs中可以进行SQLite的单步调试
资源介绍
网上大多数的使用vs2005编译sqlite是编译成为dll 我的目的是为了分析sqlite 所以还是编译成一个可执行程序方便单步调试
1 创建一个空的Win32 Console Application工程
2 sqlite3 6 23的所有源码均加入工程 除去以下几个
mutex os2 c
mutex unix c
os os2 c
os unix c
tclsqlite c
shell c 可去可不去 不去的话 可生成执行SQL的输入控制吧 方便调试;去掉的话 需要自已编写一个测试的C文件
3 选择合适的RuntimeLibrary 默认为多线程模式 位置:Project >Properties >Configuration Properties >C C++ >Code Generation >Runtime Library 这个没有改 就是默认多线程的
4 将编译模式改为c模式(TC) 位置:Project >Properties >Configuration Properties >C C++ >Advanced >Compile As 默认的是C++的 这个需要改
5 如果想要取得不必要的警告信息 则作如下处理:
在预处理定义处加 NO TCL CRT SECURE NO WARNINGS SQLITE ENABLE FTS3 SQLITE ENABLE FTS3 PARENTHESIS SQLITE ENABLE RTREE
位置: Project >Properties >Configuration Properties >C C++ >Preprocessor >Preprocessor Definitions
disable 制定的警告信息 Project >Properties >C C++ >Advanced >Disable Specific Warnings : 4267;4244;4018;4311;4996;4312;4311
6 将fts3 tokenizer c中27行的
#include "sqlite3ext h"
#ifndef SQLITE CORE
SQLITE EXTENSION INIT1
extern const sqlite3 api routines sqlite3 api;
#endif
#include "fts3 tokenizer h"
把rtree c的2877行
#if SQLITE CORE
int sqlite3 extension init
sqlite3 db
char pzErrMsg
const sqlite3 api routines pApi
{
SQLITE EXTENSION INIT2 pApi
return sqlite3RtreeInit db ;
}
#endif
56行改为
#ifndef SQLITE CORE
#include "sqlite3ext h"
SQLITE EXTENSION INIT1
#else
#include "sqlite3 h"
#endif
#include "rtree h"
外部引用有问题 估计功能不完善 先这么改
7 编译 在shell c中的main函数设断点就可以单步执行了
icu是internationalcomponents forunicode 如果需要则需另外下载相关头文件 这个网站上不去 所以没加上去">网上大多数的使用vs2005编译sqlite是编译成为dll 我的目的是为了分析sqlite 所以还是编译成一个可执行程序方便单步调试
1 创建一个空的Win32 Console Application工程
2 sqlite3 6 23的所有源码均加入工程 除去以下几个
mutex os2 c
mutex u [更多]
- 上一篇: SQLLite客户端工具
- 下一篇: SQLite 简单Demo