我很难理解为什么以下程序在执行时会产生核心转储。
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
std::unordered_map<int,int> hMap;
return 0;
}
没有编译警告或错误,但是在我执行它时会给出核心转储。 这个问题与平台或编译器有关吗?还是我在这里想念东西?
我正在使用以下g ++命令编译代码
g++ -g -Wall -Werror -std=c++11 -o file file.cpp
平台是
Linux 3.10.0-1062.4.1.el7.x86_64 #1 SMP Wed Sep 25 09:42:57 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux
编译器:
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
在调试时,我得到以下堆栈跟踪:
#0 0x0000000000601e30 in memset@@GLIBC_2.2.5 ()
#1 0x0000000000400fd4 in std::_Hashtable<int, std::pair<int const, int>, std::allocator<std::pair<int const, int> >, std::__detail::_Select1st, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_allocate_buckets (
this=0x7ffffffe8310, __n=11) at /usr/include/c++/4.8.2/bits/hashtable.h:780
#2 0x0000000000400db4 in std::_Hashtable<int, std::pair<int const, int>, std::allocator<std::pair<int const, int> >, std::__detail::_Select1st, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_Hashtable (this=0x7ffffffe8310,
__bucket_hint=10, __h1=..., __h2=..., __h=..., __eq=..., __exk=..., __a=...) at /usr/include/c++/4.8.2/bits/hashtable.h:831
#3 0x0000000000400bc5 in std::_Hashtable<int, std::pair<int const, int>, std::allocator<std::pair<int const, int> >, std::__detail::_Select1st, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::---Type <return> to continue, or q <return> to quit---
__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_Hashtable (this=0x7ffffffe8310,
__n=10, __hf=..., __eql=..., __a=...) at /usr/include/c++/4.8.2/bits/hashtable.h:397
#4 0x0000000000400aff in std::unordered_map<int, int, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<int const, int> > >::unordered_map (this=0x7ffffffe8310, __n=10, __hf=..., __eql=..., __a=...)
at /usr/include/c++/4.8.2/bits/unordered_map.h:142