Chinaunix
标题:
map erase报错
[打印本页]
作者:
jd808
时间:
2016-01-21 16:50
标题:
map erase报错
void TServer::AutoCloseEvent(Conn *conn)
{
DataBuff *send_buf=&m_MainThreadInfo->send_buf;
if(conn->fd_type==2){
map <int, map <int, Conn*>>::iterator iter_pro;
if ((iter_pro = g_app_module_process.find(conn->process_conf_index)) != g_app_module_process.end()) {
map <int, Conn*>::iterator it;
if ((it = iter_pro->second.find(conn->GetFd())) != iter_pro->second.end()) {
iter_pro->second.erase(it);
}
if(iter_pro->second.size()==0)
g_app_module_process.erase(iter_pro);
}
if(g_app_module_process.size()<g_app_module_name.size()){
if(g_pConf->BACKPRO==1)
g_module.start=0;
}
}
}
复制代码
g_app_module_process.erase(iter_pro);为啥会报错?
下面是错误信息
(gdb) bt
#0 std::_Rb_tree_rebalance_for_erase (__z=__z@entry=0x7f66480011d0, __header=...) at ../../../../../libstdc++-v3/src/c++98/tree.cc:370
#1 0x000000000040bf33 in _M_erase_aux (__position=..., this=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_tree.h:1745
#2 erase (__position=..., this=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_tree.h:820
#3 erase (__position=..., this=<optimized out>) at /usr/include/c++/4.8.2/bits/stl_map.h:697
#4 TServer::AutoCloseEvent (this=this@entry=0x7baa50, conn=0x8582b0) at routing/src/TServer.cpp:285
#5 0x000000000040c39a in TServer::TimeOutCb (this=this@entry=0x7baa50) at routing/src/TServer.cpp:416
#6 0x000000000040c48b in TServer::TimerCb (this=0x7baa50) at routing/src/TServer.cpp:363
#7 0x0000000000408bce in MultiServer::WorkerTimerEvent (arg=<optimized out>) at routing/src/MultiServer.cpp:281
#8 0x00007f66cafe3df3 in start_thread (arg=0x7f66c9b4c700) at pthread_create.c:308
#9 0x00007f66c9c431ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113
(gdb) list
280 map <int, Conn*>::iterator it;
281 if ((it = iter_pro->second.find(conn->GetFd())) != iter_pro->second.end()) {
282 iter_pro->second.erase(it);
283 }
284 if(iter_pro->second.size()==0)
285 g_app_module_process.erase(iter_pro);
286 }
287
288 if(g_app_module_process.size()<g_app_module_name.size()){
289 if(g_pConf->BACKPRO==1)
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2