GBD的STACK是:
(gdb) bt
#0  0x00e48d1c in nsprecv ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#1  0x00e4bfc3 in nsrdr ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#2  0x00e2ea0f in nsdo ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#3  0x00e2bcaf in nsbrecv ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#4  0x00e5eb6f in nioqrc ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#5  0x00f71d53 in ttcdrv ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#6  0x00e65ed1 in nioqwa ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#7  0x00cca2e7 in upirtrc ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#8  0x00cc9e56 in upirtr ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#9  0x00c3fec0 in kpurcs ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#10 0x00bb9290 in kputxcmt ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#11 0x00ccf328 in OCITransCommit ()
---Type <return> to continue, or q <return> to quit---
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#12 0x00b8fca5 in sqlcomt ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#13 0x00b88d82 in sqlnst ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#14 0x00b7223e in sqlcmex ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#15 0x00b72736 in sqlcxt ()
   from /oraAPP/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1
#16 0x0805383c in DBSetRoomOnline (iCtxID=0, iRoomID=5020, iOnline=0)
    at db_searchinfo.cpp:2800
#17 0x080568d9 in FriendServerLogic::RoomCount (this=0xbfe104d0, 
    pData=0x5ea0010, len=32) at FriendServerLogic.cpp:728
#18 0x080558a6 in FriendServerLogic::OnEvent (this=0xbfe104d0, 
    a_evt=0x5ea0010, a_currentTime=1163424686) at FriendServerLogic.cpp:135
#19 0x080579d5 in DispacherUDP::Run (this=0xbfe10490) at dispacher_udp.cpp:60
#20 0x08062c51 in Thread::ThreadMain (arg=0xbfe10490) at thread.cpp:159
#21 0x00a3b341 in start_thread () from /lib/tls/libpthread.so.0
#22 0x008cd6fe in clone () from /lib/tls/libc.so.6
其中in DBSetRoomOnline (iCtxID=0, iRoomID=5020, iOnline=0)
    at db_searchinfo.cpp:2800
函数为
int DBSetRoomOnline(int iCtxID,int iRoomID,int iOnline)
{
struct sqlca sqlca;

EXEC SQL CONTEXT USE :ctx;


EXEC SQL BEGIN DECLARE SECTION;
int iRoomIDPC;
int iOnlinePC;
EXEC SQL END DECLARE SECTION;

iRoomIDPC = iRoomID;
iOnlinePC = iOnline;

EXEC SQL UPDATE TB_AM_ROOM 
 SET ONLINE_COUNTS = :iOnlinePC
 WHERE ROOM_ID = :iRoomIDPC;


if(sqlca.sqlcode == 0)
{
EXEC SQL COMMIT WORK; //这句开始出错
}
else
{

EXEC SQL ROLLBACK WORK;
ErrReport(sqlca);
}

return sqlca.sqlcode;
}对应的出错的那个2800行实际上是EXEC SQL COMMIT WORK; 在CPP里为
{
  struct sqlexd sqlstm;
  sqlstm.sqlvsn = 12;
  sqlstm.arrsiz = 10;
  sqlstm.sqladtp = &sqladt;
  sqlstm.sqltdsp = &sqltds;
  sqlstm.iters = (unsigned int  )1;
  sqlstm.offset = (unsigned int  )1144;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)256;
  sqlstm.occurs = (unsigned int  )0;
  sqlcxt(&ctx, &sqlctx, &sqlstm, &sqlfpn);//这句出错
}程序在跑了3,4天后就会有崩溃产生CORE..大家帮忙看看吧