std::map 析构 SIGBUS
有一个 static std::map<int, const std::string> map;
在退出析构的时候产生了 SIGBUS:
#00 /lib/libstdc++.so.6 (std::string::_Rep::_M_dispose(std::allocator<char> const&)+56)
#01 /lib/libstdc++.so.6 (std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()+20)
stack info:
(std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()+24)
[heap]
[heap]
(std::_Rb_tree<int, std::pair<int const, std::string const>, std::_Select1st<std::pair<int const, std::string const> >, std::less<int>, std::allocator<std::pair<int const, std::string const> > >::_M_erase(std::_Rb_tree_node<std::pair<int const, std::string const> >*)+26)
[heap]
[heap]
(std::_Rb_tree<int, std::pair<int const, std::string const>, std::_Select1st<std::pair<int const, std::string const> >, std::less<int>, std::allocator<std::pair<int const, std::string const> > >::_M_erase(std::_Rb_tree_node<std::pair<int const, std::string const> >*)+16)
[heap]
[heap]
(std::_Rb_tree<int, std::pair<int const, std::string const>, std::_Select1st<std::pair<int const, std::string const> >, std::less<int>, std::allocator<std::pair<int const, std::string const> > >::_M_erase(std::_Rb_tree_node<std::pair<int const, std::string const> >*)+16)
[heap]
请问这个怎么产生的原因,怎么重现?