stl map find使用不当导致的低概率core dump问题的定位

这篇博客记录了作者在遇到由于STL map的find方法使用不当导致的低概率core dump问题时,如何进行定位和解决的过程。包括通过分析core文件、调整core开关、安装gdb进行调试,并最终找到问题代码并修复。同时强调了core文件备份、代码审查和避免类似错误的重要性。
摘要由CSDN通过智能技术生成

       最近呢, 收到低概率core dump告警, 不频繁, 但挺恼人, 那就展开定位呗。再低概率的core, 在亿万请求下, 必然会发生。


       这么搞起:

       1. 上外网core dump的机器一看, 没有core文件了, 于是从backup目录找到了备份的core

       2. 看了一下core文件的大小, 太小, 无法定位, 这肯定是被截断了。

       3. 完全放开机器的core开关, 并重启服务, 蹲点等待core dump的发生(考虑到性能问题, 不建议在默认情况下打开core开关).  

       4. 第二天, 有core了, 从backup文件中找到了core, 看了一下大小, 符合预期, 高兴啊。

       5. 准备用gdb挂起分析, 我靠, 该模块机器居然没有安装gdb

       6. 那行, 把外网机器的so和core拷贝到安装gdb的对应测试机器上进行分析, 结果不靠谱。 拷贝core需要的时间不短呢, 我当时用了tar

       7. 那就手动在外网机器上安装gdb, 这是我第一次安装gdb, 不难, linux上一切皆文件, 直接拷贝测试机上对应的gdb文件即可(可以用whereis命令查找位置),不像Windows上那样有恶心的注册表

       8. 安装后, 用gdb挂起core分析, 定位到了对应的代码行, 果然有嫌疑。 然后, 修改发版本解决了。

       

      后来我找运维同学批量安装了gdb, 棒棒哒!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值