STL中map的[]运算导致程序挂掉的问题

在C++项目开发中,使用STL map的[]运算符时遇到Segment Fault问题。经过分析,发现可能因先进行find操作,未初始化map内容导致。通过在构造函数中加入`group_chess_.clear()`,问题得到解决。后续通过查看STL源码,确认find操作无特殊行为,且[]会分配空间。问题可能与编译选项有关,将进一步排查。
摘要由CSDN通过智能技术生成

在项目的开发中,使用[]设置map变量时,出现了Segment Fault的问题,使用GDB bt命令得到调用栈(中间部分被我去掉了)如下:

#0  0x00000000008da74a in std::local_Rb_tree_decrement(std::_Rb_tree_node_base*) ()
Missing separate debuginfos, use: debuginfo-install cyrus-sasl-lib-2.1.26-20.el7_2.x86_64 glibc-2.17-196.el7_4.2.x86_64 gperftools-libs-2.4-8.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-8.el7.x86_64 libcom_err-1.42.9-10.el7.x86_64 libcurl-7.29.0-42.el7_4.1.x86_64 libgcc-4.8.5-16.el7_4.2.x86_64 libidn-1.28-4.el7.x86_64 libselinux-2.5-11.el7.x86_64 libssh2-1.4.3-10.el7_2.1.x86_64 libstdc++-4.8.5-16.el7_4.2.x86_64 libunwind-1.1-5.el7_2.2.x86_64 mariadb-libs-5.5.56-2.el7.x86_64 nspr-4.13.1-1.0.el7_3.x86_64 nss-3.28.4-15.el7_4.x86_64 nss-softokn-freebl-3.28.3-8.el7_4.x86_64 nss-util-3.28.4-3.el7.x86_64 openldap-2.4.40-13.el7.x86_64 openssl-libs-1.0.2k-8.el7.x86_64 pcre-8.32-17.el7.x86_64 zlib-1.2.7-17.el7.x86_64
(gdb) bt
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值