多线程下全局静态变量引起的bug定位过程

bug表现特征:    大并发下偶现  ,      GDB调试显示为一个赋值语句导致

通过GDB打印堆栈信息,定位到一个全局静态变量的赋值语句引起错core dump.

具体引起dump的是系统的free操作.也就是打印出来的堆栈的#0

在多线程环境下,推测全局静态变量发生以下步骤.

1.线程1对全局静态变量赋值,调用栈中调用了free操作,但是还没有进行赋值

2.线程2对全局静态变量赋值,调用栈中调用了free操作,造成double free.

最终造成程序崩溃.

由于该程序逻辑并不是所有请求都能走到,定位起来花费大量时间.

转载于:https://my.oschina.net/u/257448/blog/876358

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值