mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Additional debugging and tracing logic for pcache.c, turned off by default
using an "#if 0". FossilOrigin-Name: 32a62e3bd46cf58586617d3f8b1a971c91df205e
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Disable\sALWAYS\sand\sNEVER\swhen\scompiled\swith\sSQLITE_MUTATION_TEST.
|
C Additional\sdebugging\sand\stracing\slogic\sfor\spcache.c,\sturned\soff\sby\sdefault\nusing\san\s"#if\s0".
|
||||||
D 2016-05-12T19:17:09.294
|
D 2016-05-13T04:24:25.046
|
||||||
F Makefile.in 9eda6e1c90d05c199c3ec8a7069b0682ad307657
|
F Makefile.in 9eda6e1c90d05c199c3ec8a7069b0682ad307657
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc db82b35aef27f412fef14d8534afc022138bcdfd
|
F Makefile.msc db82b35aef27f412fef14d8534afc022138bcdfd
|
||||||
@@ -367,7 +367,7 @@ F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
|
|||||||
F src/pager.c b6b3f2aff301cb025b23a8586666c91355cb3c69
|
F src/pager.c b6b3f2aff301cb025b23a8586666c91355cb3c69
|
||||||
F src/pager.h 329bdf078a4e0a3b35084534d58625d21fd03681
|
F src/pager.h 329bdf078a4e0a3b35084534d58625d21fd03681
|
||||||
F src/parse.y 10eb2f3fb62341291528c7984498054731f9d31e
|
F src/parse.y 10eb2f3fb62341291528c7984498054731f9d31e
|
||||||
F src/pcache.c 3ef140add88d8d3eee3a80a79412f450bd216d3b
|
F src/pcache.c ad5ce697dc5a734caddb2b1eac83b195da95ddbe
|
||||||
F src/pcache.h 33b40350df1b6c278e019dee37f87e1bac276223
|
F src/pcache.h 33b40350df1b6c278e019dee37f87e1bac276223
|
||||||
F src/pcache1.c 7f51d2b541aab57596adf62db2c4bb025d34f04d
|
F src/pcache1.c 7f51d2b541aab57596adf62db2c4bb025d34f04d
|
||||||
F src/pragma.c faf42922bb7ab2f6672cb550356c1967abae3c84
|
F src/pragma.c faf42922bb7ab2f6672cb550356c1967abae3c84
|
||||||
@@ -1488,7 +1488,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 1b0f4cc362cda1dc175aa363ae4e612b7d1164c3
|
P 24d9fbc1d0f99b90577ecd6edcd3bc1abc76633f
|
||||||
R cbaa515ed65f02858509b96594eef6a3
|
R d638f11a5a2154aefeed14f79e8ebc4d
|
||||||
U drh
|
U drh
|
||||||
Z d111db0e0c72ae873465e360a322abe1
|
Z 291bccc6a32f88cd8cda8747cf2307e8
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
24d9fbc1d0f99b90577ecd6edcd3bc1abc76633f
|
32a62e3bd46cf58586617d3f8b1a971c91df205e
|
||||||
34
src/pcache.c
34
src/pcache.c
@@ -57,10 +57,35 @@ struct PCache {
|
|||||||
** Debug tracing macros
|
** Debug tracing macros
|
||||||
*/
|
*/
|
||||||
#if defined(SQLITE_DEBUG) && 0
|
#if defined(SQLITE_DEBUG) && 0
|
||||||
int sqlite3PcacheTrace = 1;
|
int sqlite3PcacheTrace = 2;
|
||||||
# define pcacheTrace(X) if(sqlite3PcacheTrace){sqlite3DebugPrintf X;}
|
# define pcacheTrace(X) if(sqlite3PcacheTrace){sqlite3DebugPrintf X;}
|
||||||
#else
|
void pcacheDump(PCache *pCache){
|
||||||
|
int N;
|
||||||
|
int i, j;
|
||||||
|
sqlite3_pcache_page *pLower;
|
||||||
|
PgHdr *pPg;
|
||||||
|
unsigned char *a;
|
||||||
|
|
||||||
|
if( sqlite3PcacheTrace<2 ) return;
|
||||||
|
if( pCache->pCache==0 ) return;
|
||||||
|
N = sqlite3PcachePagecount(pCache);
|
||||||
|
if( N>5 ) N = 5;
|
||||||
|
for(i=1; i<=N; i++){
|
||||||
|
pLower = sqlite3GlobalConfig.pcache2.xFetch(pCache->pCache, i, 0);
|
||||||
|
if( pLower==0 ) continue;
|
||||||
|
pPg = (PgHdr*)pLower->pExtra;
|
||||||
|
printf("%3d: nRef %2d flgs %02x data ", i, pPg->nRef, pPg->flags);
|
||||||
|
a = (unsigned char *)pLower->pBuf;
|
||||||
|
for(j=0; j<12; j++) printf("%02x", a[j]);
|
||||||
|
printf("\n");
|
||||||
|
if( pPg->pPage==0 ){
|
||||||
|
sqlite3GlobalConfig.pcache2.xUnpin(pCache->pCache, pLower, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
# define pcacheTrace(X)
|
# define pcacheTrace(X)
|
||||||
|
# define pcacheDump(X)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/********************************** Linked List Management ********************/
|
/********************************** Linked List Management ********************/
|
||||||
@@ -142,6 +167,7 @@ static void pcacheManageDirtyList(PgHdr *pPage, u8 addRemove){
|
|||||||
p->pSynced = pPage;
|
p->pSynced = pPage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
pcacheDump(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -152,6 +178,7 @@ static void pcacheUnpin(PgHdr *p){
|
|||||||
if( p->pCache->bPurgeable ){
|
if( p->pCache->bPurgeable ){
|
||||||
pcacheTrace(("%p.UNPIN %d\n", p->pCache, p->pgno));
|
pcacheTrace(("%p.UNPIN %d\n", p->pCache, p->pgno));
|
||||||
sqlite3GlobalConfig.pcache2.xUnpin(p->pCache->pCache, p->pPage, 0);
|
sqlite3GlobalConfig.pcache2.xUnpin(p->pCache->pCache, p->pPage, 0);
|
||||||
|
pcacheDump(p->pCache);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -352,6 +379,7 @@ int sqlite3PcacheFetchStress(
|
|||||||
#endif
|
#endif
|
||||||
pcacheTrace(("%p.SPILL %d\n",pCache,pPg->pgno));
|
pcacheTrace(("%p.SPILL %d\n",pCache,pPg->pgno));
|
||||||
rc = pCache->xStress(pCache->pStress, pPg);
|
rc = pCache->xStress(pCache->pStress, pPg);
|
||||||
|
pcacheDump(pCache);
|
||||||
if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
|
if( rc!=SQLITE_OK && rc!=SQLITE_BUSY ){
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@@ -496,6 +524,7 @@ void sqlite3PcacheMakeClean(PgHdr *p){
|
|||||||
*/
|
*/
|
||||||
void sqlite3PcacheCleanAll(PCache *pCache){
|
void sqlite3PcacheCleanAll(PCache *pCache){
|
||||||
PgHdr *p;
|
PgHdr *p;
|
||||||
|
pcacheTrace(("%p.CLEAN-ALL\n",pCache));
|
||||||
while( (p = pCache->pDirty)!=0 ){
|
while( (p = pCache->pDirty)!=0 ){
|
||||||
sqlite3PcacheMakeClean(p);
|
sqlite3PcacheMakeClean(p);
|
||||||
}
|
}
|
||||||
@@ -506,6 +535,7 @@ void sqlite3PcacheCleanAll(PCache *pCache){
|
|||||||
*/
|
*/
|
||||||
void sqlite3PcacheClearWritable(PCache *pCache){
|
void sqlite3PcacheClearWritable(PCache *pCache){
|
||||||
PgHdr *p;
|
PgHdr *p;
|
||||||
|
pcacheTrace(("%p.CLEAR-WRITEABLE\n",pCache));
|
||||||
for(p=pCache->pDirty; p; p=p->pDirtyNext){
|
for(p=pCache->pDirty; p; p=p->pDirtyNext){
|
||||||
p->flags &= ~(PGHDR_NEED_SYNC|PGHDR_WRITEABLE);
|
p->flags &= ~(PGHDR_NEED_SYNC|PGHDR_WRITEABLE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user