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);*

*                     ...*

*           }*


*           if(ret == SQLITE_BUSY)*

*           {*

*                     msleep(50);*

*                     goto RETRY;*

*           }*

*           else if( ret != SQLITE_DONE)*

*           {*

*                     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.

Reply via email to