文件名称:可在win vs下单步调试的SQLite
文件大小:907KB
文件格式:ZIP
更新时间:2018-03-31 04:16:10
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 [更多]
【文件预览】:
sqlite3
----sqlite3.sln(886B)
----sqlite3()
--------btree.c(232KB)
--------rtree.c(77KB)
--------vdbeapi.c(38KB)
--------resolve.c(39KB)
--------malloc.c(22KB)
--------journal.c(6KB)
--------fts3_porter.c(17KB)
--------update.c(23KB)
--------rtree.h(708B)
--------sqlite3.h(305KB)
--------callback.c(14KB)
--------sqlite3ext.h(20KB)
--------mutex.h(2KB)
--------vdbefifo.c(3KB)
--------date.c(26KB)
--------opcodes.c(4KB)
--------status.c(3KB)
--------where.c(105KB)
--------vdbeaux.c(72KB)
--------vdbe.c(158KB)
--------fts3_hash.c(11KB)
--------expr.c(99KB)
--------fts3.h(705B)
--------auth.c(7KB)
--------complete.c(9KB)
--------fts3.c(227KB)
--------mutex_w32.c(8KB)
--------mem5.c(13KB)
--------pcache1.c(22KB)
--------legacy.c(4KB)
--------fault.c(3KB)
--------sqlite3.vcproj.0298A42B30694DC.linlin.user(1KB)
--------attach.c(16KB)
--------loadext.c(16KB)
--------sqliteInt.h(109KB)
--------os.h(10KB)
--------os.c(7KB)
--------pager.h(5KB)
--------hwtime.h(2KB)
--------util.c(24KB)
--------os_common.h(4KB)
--------walker.c(4KB)
--------func.c(41KB)
--------printf.c(30KB)
--------btree.h(8KB)
--------mem2.c(12KB)
--------random.c(5KB)
--------sqlite3.vcproj(9KB)
--------utf.c(17KB)
--------fts3_tokenizer.c(10KB)
--------select.c(142KB)
--------opcodes.h(10KB)
--------delete.c(21KB)
--------btreeInt.h(28KB)
--------fts3_icu.c(7KB)
--------shell.c(59KB)
--------vtab.c(24KB)
--------mem0.c(2KB)
--------mutex_noop.c(5KB)
--------vdbeblob.c(11KB)
--------pcache.c(15KB)
--------mutex.c(4KB)
--------memjournal.c(7KB)
--------keywordhash.h(6KB)
--------vdbeInt.h(18KB)
--------sqliteicu.h(705B)
--------global.c(4KB)
--------analyze.c(14KB)
--------vacuum.c(10KB)
--------os_win.c(48KB)
--------sqliteLimit.h(5KB)
--------fts3_hash.h(4KB)
--------tokenize.c(15KB)
--------pager.c(141KB)
--------parse.c(133KB)
--------vdbemem.c(31KB)
--------vdbe.h(8KB)
--------alter.c(20KB)
--------mem1.c(4KB)
--------fts3_tokenizer.h(6KB)
--------btmutex.c(9KB)
--------hash.h(3KB)
--------pcache.h(5KB)
--------fts3_tokenizer1.c(6KB)
--------build.c(114KB)
--------hash.c(9KB)
--------trigger.c(28KB)
--------pragma.c(47KB)
--------table.c(5KB)
--------bitvec.c(12KB)
--------parse.h(7KB)
--------mem3.c(20KB)
--------prepare.c(25KB)
--------insert.c(60KB)
--------main.c(61KB)