All,
Win64 compiled with the latest patched Visual Studio 8.
I just downloaded and compiled the latest amalgamation in my project,
ran it and the program died immediately.
I've tracked it down to SQLITE_OMIT_TRACE. If I compile with this
defined, it crashes.
It's dying here
Expr.c line 2173
case TK_VARIABLE: {
VdbeOp *pOp;
assert( !ExprHasProperty(pExpr, EP_IntValue) );
assert( pExpr->u.zToken!=0 );
assert( pExpr->u.zToken[0]!=0 );
if( pExpr->u.zToken[1]==0
&& (pOp = sqlite3VdbeGetOp(v, -1))->opcode==OP_Variable
&& pOp->p1+pOp->p3==pExpr->iTable
&& pOp->p2+pOp->p3==target
&& pOp->p4.z==0
){
/* If the previous instruction was a copy of the previous unnamed
** parameter into the previous register, then simply increment the
** repeat count on the prior instruction rather than making a new
** instruction.
*/
pOp->p3++;
}else{
sqlite3VdbeAddOp3(v, OP_Variable, pExpr->iTable, target, 1);
if( pExpr->u.zToken[1]!=0 ){
sqlite3VdbeChangeP4(v, -1, pExpr->u.zToken, 0);
}
}
break;
I've tried both the amalgamation and the individual files method.
sqlite3VdbeGetOp is returning an invalid pointer.
SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetOp(Vdbe *p, int addr){
static VdbeOp dummy;
assert( p->magic==VDBE_MAGIC_INIT );
if( addr<0 ) addr = p->nOp - 1;
assert( (addr>=0 && addr<p->nOp) || p->db->mallocFailed );
if( p->db->mallocFailed ){
return &dummy;
}else{
return &p->aOp[addr];
}
}
This is what I was compiling:
"SELECT CF_Value FROM TB_Config WHERE CF_Section=? AND CF_Key=?;"
It's a very basic DB for configuration information.
//
//
//
HRESULT hr = Exec
(
"CREATE TABLE IF NOT EXISTS TB_Config ("
"CF_Section VARCHAR(128), "
"CF_Key VARCHAR(128), "
"CF_Value VARCHAR(128), "
"CF_Age INTEGER, "
"PRIMARY KEY (CF_Section, CF_Key) );"
);
if( FAILED(hr) )
{
ASSERT(0);
FreeError();
}
I can stick the old library 3.6.7 back in place and it works.
Sqlite.exe is able to access the DB with no issues.
C
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users