Program received signal SIGSEGV, Segmentation fault.
0xf74a448c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
(gdb) bt
#0 0xf74a448c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
#1 0xf74a4565 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
#2 0xf3b16bcc in follow_jce_def::jceFollowNodeInfo::operator= (this=0x9daeb30)
at /data/hadesmo/livesvn/app/spp_follow/comm/jce_protocol/include/follow_jce_def.h:457
#3 0xf3b17d7e in std::__unguarded_linear_insert<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, follow_jce_def::jceFollowNodeInfo, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__last=..., __val=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2253
#4 0xf3b17e33 in std::__unguarded_insertion_sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2344
#5 0xf3b18154 in std::__final_insertion_sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2379
#6 0xf3b181ef in std::sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2751
0xf74a448c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
(gdb) bt
#0 0xf74a448c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
#1 0xf74a4565 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
#2 0xf3b16bcc in follow_jce_def::jceFollowNodeInfo::operator= (this=0x9daeb30)
at /data/hadesmo/livesvn/app/spp_follow/comm/jce_protocol/include/follow_jce_def.h:457
#3 0xf3b17d7e in std::__unguarded_linear_insert<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, follow_jce_def::jceFollowNodeInfo, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__last=..., __val=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2253
#4 0xf3b17e33 in std::__unguarded_insertion_sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2344
#5 0xf3b18154 in std::__final_insertion_sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2379
#6 0xf3b181ef in std::sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=...,
__comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
at /usr/include/c++/4.1.2/bits/stl_algo.h:2751
#7 0xf3ae2fd0 in Logic::FollowDataGet (this=0xf37ff008, flow=4, arg1=0x9d83c88, arg2=0x9d7f650) at ./include/logic.h:480
#6有问题。
原因,std::sort(v.begin(),v.end(),cmp) 中的cmp函数没有保证单调性。否则sort里面有个插入操作会越界。
必须保证,如果 a<=b ,b<=c 则 a<=c。