//按扭事件 
   QSqlQuery query;
    query.exec("select * from fileinfo");
    bool result = query.next();
    if(result == false)
        query.exec("create table fileinfo(id,filename,status);");
    query.exec("select id from fileinfo");
    while(query.next())
        record_number_Line = query.value(0).toInt();
  
   QString insertdata = "insert into fileinfo(id,filename,status) values('" + QString::number(record_number_Line);
    insertdata += "','" + QString::fromAscii(values1) + "','0');";
    query.exec(insertdata);
    qDebug()<<insertdata;
     
     //另一个按扭事件:
    QSqlQuery query;
    //修改文件标记为未读取状态
    QString updatedata = "update fileinfo set status='1' where id='" + QString::number(record_number_Line) + "';";
    qDebug()<<updatedata;
    query.exec(updatedata);
编译执行结果:
"insert into fileinfo(id,filename,status) values('8','J140809008','0');" 
"update fileinfo set status='1' where id='8';" 
超级终端中执行:sqlite3 SysInfo.db
sqlite> select * from fileinfo;
1|J140808001|1
2|J140808002|1
3|J140808003|1
4|J140808004|1
5|J140808005|1
6|J140808006|1
7|J140808007|1
8|J140809008|1
sqlite> 
结果没有异常。
将此代码使用arm-linux-gcc交叉编译后生成ARM构架可执行代码复制到板子上运行:
"insert into fileinfo(id,filename,status) values('9','J700101009','0');" 
"update fileinfo set status='1' where id='9';"
Segmentation fault 
应用程序黑屏。
再次使用超级终端执行:sqlite3 SysInfo.db
sqlite> select * from fileinfo;
1|J140808001|1
2|J140808002|1
3|J140808003|1
4|J140808004|1
5|J700101005|1
6|J700101006|1
7|J700101007|0
8|J700101008|1
9|J700101009|0
sqlite> update fileinfo set status='1' where id='9'; 
sqlite> select * from fileinfo;
1|J140808001|1
2|J140808002|1
3|J140808003|1
4|J140808004|1
5|J700101005|1
6|J700101006|1
7|J700101007|0
8|J700101008|1
9|J700101009|1
sqlite> 问题是:在QT中执行update,在PC上运行结果正常,交叉编译以后在ARM板上执行update命令时出现Segmentation faul
但是在ARM板的超级终端上运行sqlite3 xx.db执行update命令时结果正常。
请问这是哪里出现的错误?