当libstdc++内部报错的时候一般不会深入调试,更多的是从自身代码来找问题。一方面是标准库出错的可能性较小,另一方面libstdc++的调试也不是很方便,默认的libstdc++不带符号表,stack一般定位不到具体的文件行号,比如:
(gdb) bt
#0 0x0000003ebda30265 in raise () from /lib64/libc.so.6
#1 0x0000003ebda31d10 in abort () from /lib64/libc.so.6
#2 0x0000003ec46bed14 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib64/libstdc++.so.6
#3 0x0000003ec46bce16 in ?? () from /usr/lib64/libstdc++.so.6
#4 0x0000003ec46bce43 in std::terminate() () from /usr/lib64/libstdc++.so.6
#5 0x0000003ec46bcf2a in __cxa_throw () from /usr/lib64/libstdc++.so.6
#6 0x0000003ec46bd239 in operator new(unsigned long) () from /usr/lib64/libstdc++.so.6
#7 0x0000003ec469b861 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> co