- 论坛徽章:
- 0
|
while(getline(cfg_st,line,'\n'))
{
key.clear();
value.clear();
if(0==parseline(line,key,value)) cfg_map.insert(make_pair(key,value));
} |
上边的代码中cfg_map是申请的一个map<string,string>,然后从文件中取数据,处理然后插入map中,程序在2.4内核下没有问题,但是到了2.6内核下重新编译以后运行的时候,就出现段错误,错误如下:
0x080b5f83 in std::string::compare ()
(gdb) where
#0 0x080b5f83 in std::string::compare ()
#1 0x0806640d in std: perator< <char, std::char_traits<char>, std::allocator<char> > ()
#2 0x0806642f in std::less<std::string>: perator() ()
#3 0x08066a14 in std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::insert_unique ()
#4 0x08066bc6 in std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::insert ()
#5 0x08065b45 in CFG::CFG ()
#6 0x0804c9a3 in policy_init ()
#7 0x0804db9a in main ()
这个怎么解决阿?急,谢谢 |
|