I'm using CodeWarrior for compiling. In setting-->Debugger-->OPT tag, I have selected the least optimization(best debug), and I select optimize for time instead of for space. I have not found anywhere to thoroughly turn off the opt in CodeWarrior. Did I make some stupid mistake?
---------------------------------------------------- >Sarah uttered: > >> plus, I'm using sqlite-source-3_3_5. >> >> I also find a wired phenomenon: >> >> When I trace into sqlite3Parser(pEngine, TK_SEMI, pParse->sLastToken, >> pParse); >> >> the next executed statement pointed by debugger does not match with the >> real one, It seems there are one or two lines space. That is to say, the >> debugger arrow doesn't point to the real statement which is going to be >> executed next. > > > >This can be a problem if the binary is compiled with optimisations of any >level. You should turn optimisations off when compiling for debugging, as >the compiler often rearranges the output assembler for optimal use of >pipeline resources. > > >> >> >> ----- Original Message ----- >> From: Sarah >> To: sqlite-users@sqlite.org >> Sent: Monday, September 11, 2006 7:22 PM >> Subject: met "ARM7TDMI raised an exception,data abort" when executing >> sqlite3Parser() in ARM environment >> >> >> Hi,all >> >> During the execution of a test program in an embedded environment, >> after it goes into >> sqlite3_exec()-->sqlite3_prepare()-->sqlite3RunParser(&sParse, zSql, >> &zErrMsg), >> the debugger pops "the ARM7TDMI raised an exception,data abort" when the >> following sentence is executed(bold and underlined): >> >> ... >> abort_parse: >> ... >> sqlite3Parser(pEngine, TK_SEMI, pParse->sLastToken, pParse); >> ... >> >> After "data abort" happens, the debugger stops at assembly languages like >> this(pointed by an arrow): >> ... >> [0xbc38] pop {r3-r5} >> [0xbc08] pop {r3} >> [0x4718] bx r3 >> [0x6868] ldr r0,[r5,#4] >> [0x1c29] mov r1,r5 >> [0x2800] cmp r0,#0 >> [0xd018] beq 0x42fc4 ; (__Heap_Alloc + 0x5a) >> --> [0x6802] ldr r2,[r0,#0] >> [0x42a2] cmp r2,r4 >> [0xd311] bcc 0x42fbc ; (__Heap_Alloc + 0x52) >> [0x1c23] mov r3,r4 >> [0x6802] ldr r2,[r0,#0] >> ... >> >> When I trace into sqlite3Parser(),it seems like the error is caused by >> "yy_reduce(yypParser,yyact-YYNSTATE);" >> >> My test program is like this: >> { >> char * database = ":memory:"; >> sqlite3 * db; >> >> sqlite3_open(database, &db); >> >> sqlite3_exec(db, "create table myt(age smallint)", NULL, NULL, NULL); >> .... >> } >> >> sqlite3_open() runs successfully. >> And CPU type is ARM7TDMI, no operating system is used, such as linux. >> >> I'm totally confused. Please help me diagnose this error. >> Any little help will be appreciated. >> >> Sarah >> > >-- > /"\ > \ / ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL > X - AGAINST MS ATTACHMENTS > / \ > >----------------------------------------------------------------------------- >To unsubscribe, send email to [EMAIL PROTECTED] >----------------------------------------------------------------------------- > >