gsoap一处bug引起的崩溃分析

本文通过对一个1.54GB的dmp文件进行Windbg分析,揭示了一次由gsoap库引发的服务器崩溃原因。崩溃源于访问NULL指针,涉及soap_set_receiver_error函数中的fault成员。故障发生在尝试访问fault->SOAP_ENV__Code->SOAP_ENV__Value时,由于未检查fault内存是否已创建。这可能是gsoap的一个潜在bug。
摘要由CSDN通过智能技术生成

近日,现场有人反映,平台某服务器出现一次崩溃,不过由于看门狗的存在,又自动重启了,听到此消息也比较诧异,因为这台服务器已经运行两三个月了,突然崩溃一次,而后面再怎么操作又没问题了,想必是个极难出现的bug,跟现场确认没有进行过什么特殊操作,且没有安装卸载任何程序后,就让现场把dmp文件发回来,进行仔细分析。

Dmp文件很大,约1.54个G,这个我还是比较乐意看到的,因为dump文件越大,说明包含的信息越多,越便于分析。

打开windbg,设置好符号路径后,输入!analyze –v 进行分析,稍等片刻,windbg便给出了初步的分析结果。

 

从图中可以看出很多信息,崩溃原因还是一如既往的0xc000005 访问违例,崩溃的行数为70c7f8d    mov eax,dword ptr [eax+10h] 这行,把eax+10指向的四字节内存读取到eax中,那最大的可能就是eax的值有问题了,用.ecxr切换至异常所在上下文,然后输入r查看寄存器:

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值