hi.
My program received signal SIGSEGV during performed to sqlite_step().
It was occurs only one time still.. but I should know cause. so I need help
you. please.
*Code:*
*// Already prepared statement using sqlite3_prepare_v2(db, QUERY, -1,
&stmt, NULL).*
*{*
*sqlite3 *db;*
*sqlite3_stmt *stmt;*
*...*
*RETRY:*
* sqlite3_reset(stmt);*
* sqlite3_bind_int(stmt, 1, dir);*
* while((ret = sqlite3_step(stmt)) == SQLITE_ROW)*
* {*
* id = sqlite3_column_int(stmt, 0);*
* name = (char*)sqlite3_column_text(stmt, 1);*
* ...*
* found++;*
* }*
* if(ret == SQLITE_BUSY && !found)*
* {*
* msleep(50);*
* goto RETRY;*
* }*
* else if( ret != SQLITE_DONE && ret != SQLITE_ROW)*
* {*
* sqlite3_errcode(db);*
* goto ERROR;*
* }*
* sqlite3_reset(stmt);*
* return SUCCESS;*
*ERROR:*
* sqlite3_reset(stmt);*
* return FAILURE;*
*}*
It was debugging result..
line "while((ret = sqlite3_step(stmt)) == SQLITE_ROW)"
and sqlite3 library debugging result..
$ addr2line -e libsqlite3.so.0 0x5b81a
./sqlite3.c:64118
line " while( (rc = sqlite3Step(v))==SQLITE_SCHEMA
&& cnt++ < SQLITE_MAX_SCHEMA_RETRY
&& (rc2 = rc = sqlite3Reprepare(v))==SQLITE_OK )"
sqlite3 version is 3.7.13.
I think perhaps..
By some reason was error code returns in sqlite3_step()
and then sqlite3_reset() is returning an invalid pointer.
But I don't know why received signal SIGSEGV.
In any case I want to know what occurs segfault in sqlite3_step().
help me, please.
thank you.