平台崩溃之operator new异常(十)-2010-5-21

来源:互联网 发布:mmd口型数据 编辑:程序博客网 时间:2024/03/29 18:57

今天15:20分左右,平台停止了。错误为user breakpoint,调用栈如下:
MSVCRTD! 10211920()
MSVCRTD! 10211863()
MSVCRTD! 10211836()
MSVCRTD! 1020e1be()
umxns::CUMXApp::AddParam(const char * 0x037da2bc `string', const char * 0x2546fb44, unsigned long 4294967295, long 0) line 976 + 7 bytes
umxns::CUMXApp::AddParam(const char * 0x037da2bc `string', long 1, long 0) line 1001
CSepSEMQ::GenInquiry2Msg(CAckItem & {...}, CSEMQItem & {...}) line 228
CSEMQ::Inquiry2() line 1159 + 27 bytes
InquiryProc2(void * 0x00e74d00) line 607
exec_task_func(void * 0x1f188910) line 32 + 15 bytes
ACED! 00585ab7()
ACED! 005859e4()
ACED! 004fa836()
MSVCRTD! 1020c323()
KERNEL32! 7c824829()

代码停在AddParam的new NamedParam处
int CUMXApp::AddParam(const char* name,const char* val,unsigned long vlen,long attr)
{
 NamedParam *np = 0;
 int ordinal = GetParamIndex(name);
 if (ordinal == -1) {
  np = new NamedParam;///<停在此处
  m_paras.push_back(np);
 }


重启后,发现10000号一直未连接平台。平台的屏幕输出本地服务器频繁断开和连接。拿下日志分析(见下),发现501处理时间较长的花了208秒。
[2010-05-21 15:21:52:765](线程6436)正在处理:服务器注册(5:501,cmdserial=584)...
[2010-05-21 15:21:52:765](线程6436)服务器ID为5022(IP:119.147.24.98,Port:9601,MIP:0.0.0.0,MPort:0)的服务器连接到平台。
[2010-05-21 15:21:52:765](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:148
[2010-05-21 15:21:52:765](线程6436)OnSererLogin() Server ID:5022...
[2010-05-21 15:21:52:781](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:179
[2010-05-21 15:21:52:781](线程6436)GetServerCert() ServerID:5022...
[2010-05-21 15:21:52:796](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:187
[2010-05-21 15:21:52:796](线程6436)GetServerRecord() ok ServerID:5022...
[2010-05-21 15:21:52:796](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:195
[2010-05-21 15:21:52:796](线程6436)X509_get_pubkey() ok ServerID:5022...
[2010-05-21 15:21:52:796](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:208
[2010-05-21 15:21:52:796](线程6436)GetServer() ServerID:5022...
[2010-05-21 15:21:52:828](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:234
[2010-05-21 15:21:52:828](线程6436)验证机器指纹 ServerID:5022...
[2010-05-21 15:21:52:828](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:322
[2010-05-21 15:21:52:828](线程6436)产生会话密钥 ServerID:5022...
[2010-05-21 15:21:52:859](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:325
[2010-05-21 15:21:52:859](线程6436)GenSessionKey()...
[2010-05-21 15:21:52:906](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:354
[2010-05-21 15:21:52:906](线程6436)PublicKeyEncryptData ServerID:5022...
[2010-05-21 15:21:52:906](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:377
[2010-05-21 15:21:52:906](线程6436)EncryptData ServerID:5022...
[2010-05-21 15:21:52:906](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:424
[2010-05-21 15:21:52:906](线程6436)new SERVERINFO() ServerID:5022...
[2010-05-21 15:21:52:906](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:436
[2010-05-21 15:21:52:906](线程6436)验证机构信息 ServerID:5022...
[2010-05-21 15:21:56:109](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:577
[2010-05-21 15:21:56:125](线程6436)检查服务器版本信息 ServerID:5022...
[2010-05-21 15:21:57:609](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:592
[2010-05-21 15:21:57:609](线程6436)获取服务器版本信息 ServerID:5022...
[2010-05-21 15:21:58:718](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:766
[2010-05-21 15:21:58:718](线程6436)生成服务器上线事件 ServerID:5022...
[2010-05-21 15:21:58:718](线程6436)HandleServerReg entry Server ID:5022...
[2010-05-21 15:22:00:578](线程6436)HandleServerReg CServerHelper::Get done Server ID:5022...
.[2010-05-21 15:22:02:281](线程6436)HandleServerReg COrgHelper::GetOrgByServerID done Server ID:5022,org size=69...
[2010-05-21 15:22:02:468](线程6436)HandleServerReg while1 done Server ID:5022...
[2010-05-21 15:22:04:500](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:06:187](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:08:078](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:10:125](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:10:203](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:12:406](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:14:437](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:16:343](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:19:765](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:19:765](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:25:140](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:27:218](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:29:453](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:30:640](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:35:218](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:36:390](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:36:437](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:38:281](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:45:656](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:47:750](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:49:546](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:49:546](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:51:625](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:53:328](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:53:375](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:57:312](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:22:59:359](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:01:203](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:01:375](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:03:390](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:07:328](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:09:234](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:12:656](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:15:343](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:15:343](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:15:343](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:15:343](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:19:000](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:22:703](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:25:171](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:26:843](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:26:859](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:26:859](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:26:875](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:26:875](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:33:765](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
.[2010-05-21 15:23:35:484](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:42:484](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:44:265](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:48:328](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:52:421](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:52:468](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:54:484](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:56:156](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:23:56:406](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:00:343](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:02:875](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:04:593](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:09:250](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:11:359](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:11:421](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:12:953](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:15:531](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:16:421](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:19:906](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:20:203](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:20:218](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:21:968](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:22:000](线程6436)HandleServerReg edisp.AddFilter done Server ID:5022...
[2010-05-21 15:24:22:000](线程6436)HandleServerReg while2 done Server ID:5022...
[2010-05-21 15:24:22:000](线程6436)HandleServerReg edisp.AddExcept done Server ID:5022...
[2010-05-21 15:24:24:109](线程6436)HandleServerReg edisp.DoFilter done Server ID:5022...
[2010-05-21 15:24:24:890](线程6436)CEventDispatcher::Send() handles_.size() > 1
[2010-05-21 15:24:26:640](线程6436)HandleServerReg edisp.Send done Server ID:5022...
[2010-05-21 15:24:27:843](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:27:875](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:28:015](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:29:875](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:29:984](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:31:609](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
.[2010-05-21 15:24:32:421](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:32:437](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:34:156](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:34:390](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:34:500](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:36:343](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
.[2010-05-21 15:24:36:375](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:37:906](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:39:531](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:39:562](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:41:062](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:42:453](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:42:468](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:42:468](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:42:484](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:44:046](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:44:062](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:46:234](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
.[2010-05-21 15:24:47:375](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:47:406](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:49:062](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:50:843](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:50:843](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:50:890](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:52:671](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:52:687](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:53:703](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:54:453](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
.[2010-05-21 15:24:55:468](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:56:359](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:56:437](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:56:453](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:56:468](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:58:171](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:58:312](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:24:58:500](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:00:375](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:00:406](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:00:421](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:00:453](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:02:093](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:02:125](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:03:953](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:04:046](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:04:046](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:05:875](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:05:906](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:06:000](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:07:468](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:08:140](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:08:171](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:09:921](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:10:015](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:10:046](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:11:625](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:11:734](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:12:046](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:12:125](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:12:640](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:13:031](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:13:718](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:14:093](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:14:437](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:16:156](线程6436)HandleServerReg while3 done Server ID:5022...
[2010-05-21 15:25:16:203](线程6436)HandleServerReg while4 done Server ID:5022,co_org_map.size=3...
[2010-05-21 15:25:17:062](线程6436)HandleServerReg while5 done Server ID:5022,server_map.size=3...
[2010-05-21 15:25:18:000](线程6436)HandleServerReg while6 done Server ID:5022...
[2010-05-21 15:25:18:437](线程6436)HandleServerReg while7 done Server ID:5022...
[2010-05-21 15:25:21:296](线程6436)[thread 6436]file:d:/src/server/sevs/sap/sap.cpp line:787
[2010-05-21 15:25:21:296](线程6436)OnSererLogin() Server ID:5022 OK!
[2010-05-21 15:25:21:296](线程6436)请求"服务器注册"(501,cmdserial=584)处理成功.结果消息个数:2
[2010-05-21 15:25:21:515](线程6436)[thread 6436]file:d:/src/server/hotfox/scheduler.cpp line:407
[2010-05-21 15:25:21:515](线程6436)消息ID:501,耗时:208.75(秒),记录总数:0

昨天修改了获取服务器软件包版本号的一把锁,通过日志分析,仅花了一秒钟。
时间花在了后面的2处地方:
第一处:耗时2分钟。
[2010-05-21 15:22:02:468](线程6436)HandleServerReg while1 done Server ID:5022...
[2010-05-21 15:24:22:000](线程6436)HandleServerReg while2 done Server ID:5022...
while2执行花了2分钟。代码如下:
 while(iter!=org_list.end()) { ///< 对每个机构进行合作机构过滤,确定需要发送511消息的本地服务器和RSP
  edisp.SetObjectId((*iter)->GetOrgID());
  edisp.AddFilter(IMsgDispatcher::FILTER_CO_ORG);
  nlogger_->log(LO_STDOUT|LO_FILE,SEVERITY_DEBUG,"HandleServerReg edisp.AddFilter done Server ID:%d.../n",e.serverid_);
  iter++;
 }
 nlogger_->log(LO_STDOUT|LO_FILE,SEVERITY_DEBUG,"HandleServerReg while2 done Server ID:%d.../n",e.serverid_);
 
第二处:耗时1分钟。
[2010-05-21 15:24:27:843](线程6436)HandleServerReg COrgFilter::FilterCoOrg done Server ID:5022...
[2010-05-21 15:25:16:156](线程6436)HandleServerReg while3 done Server ID:5022...
while3执行花了约1分钟,代码如下:
 ORG_MAP co_org_map;
 iter = org_list.begin();
 while(iter!=org_list.end()) {
  IORGINFO *org = *iter;
  COrgFilter::FilterCoOrg(org->GetOrgID(),&co_org_map);
  nlogger_->log(LO_STDOUT|LO_FILE,SEVERITY_DEBUG,"HandleServerReg COrgFilter::FilterCoOrg done Server ID:%d.../n",e.serverid_);
  iter++;
 }
 nlogger_->log(LO_STDOUT|LO_FILE,SEVERITY_DEBUG,"HandleServerReg while3 done Server ID:%d.../n",e.serverid_);
 

怀疑平台的死跟内存越界有关。所以今天准备把所有的strcpy和strncpy换掉,strcpy和strncpy的安全问题见《平台无响应问题处理(九)》
方法如下:
(1)实现一个安全的字符串拷贝函数safestr_strncpy。实现在safestr.h
(2)用宏替换掉标准库函数,代码如下:
#undef strcpy
#define strcpy safestr_strncpy
#undef strncpy
#define strncpy safestr_strncpy
(3)在使用了strcpy的代码中包含新的头文件
#include "safestr_strncpy"
如果没有包含该头文件,则就没有成功替换。
注意:该头文件一定要在最后面,否则就没报如下编译错误:
--------------------Configuration: test_strncpy - Win32 Debug--------------------
Compiling...
test_strncpy.cpp
c:/program files/microsoft visual studio/vc98/include/string.h(137) : error C2556: 'char *__cdecl safestr_strncpy(char *,const char *,unsigned int)' : overloaded function differs only by return type from 'int __stdcall safestr_strncpy(char *,const c
har *,unsigned int)'
        e:/2-研发库/test_strncpy/safestr.h(20) : see declaration of 'safestr_strncpy'
c:/program files/microsoft visual studio/vc98/include/string.h(137) : error C2373: 'safestr_strncpy' : redefinition; different type modifiers
        e:/2-研发库/test_strncpy/safestr.h(20) : see declaration of 'safestr_strncpy'
Error executing cl.exe.

test_strncpy.exe - 2 error(s), 0 warning(s)

以下几处没有替换
int CRowset::GetRecord(unsigned long idx,char *buf,int *len,...) throw()
{
 if (idx>=m_rs.size()) return -1;
 try {
 std::vector<char*> *rec = m_rs[idx];
 std::vector<char*>::iterator it;
 va_list vl;
 va_start(vl,buf);
 char *p = buf;
 for (it=rec->begin();it!=rec->end();it++) {
  char *val = *it;
  strcpy(p,val);///<怎么使用的
  int* pn = va_arg(vl,int*);
  *pn = strlen(val);
  p = va_arg(vl,char*);
 }
 va_end(vl);
 }
 catch (...) {
  throw(UE_UNSPECIFIED);
 }
 return 0;
}

int CUMXApp::Stream(unsigned char **buf,unsigned long &bufsize,unsigned long &datasize)
int CHSProxy::Socks5_Connect(SOCKET Socket,const char* DestAddr,uint16 DestPort,const char* UserName,const char* Pwd,uint8 ConnectType){

int CShell::Run() 函数里面有用到strtok(有线程安全问题) 未解决

strcpy和strncpy的代码已经改好。替换程序,将rto的Inquer2后台线程去掉,于20:10分重启平台。