记录一次使用windbg解决的问题

问题背景:

某天忽闻测试那出现一个问题,程序在运行19分钟之后程序突然崩溃,很奇怪的是,当时我和其他的同事电脑上都没出现这种问题,好的是,在测试的电脑上可以稳定复现,于是便开始了排查。

排查过程:

刚开始由于可以稳定复现(不得不说可以稳定复现的问题是真好),就用windbg抓了个dump文件,拿回来加载上pdb之后,!analyze -v自动分析之后

 并没有显示出崩溃的代码位置,

 用dd和.exr想看看崩溃附近的代码,但是一直报Cannot read Exception record @ f685d68b,也不知道为什么,有人知道的话也可以在评论区告知我一下,

 但是这并不是最后解决问题关键

后面用!locks等命令查看锁线程等都没找到异常的地方

没办法只能在网上找啊找,看到一篇博文上写着这个命令

~*er?$t1=((ntdll!_NT_TIB*)@$teb)->StackLimit;r?$t2=((ntdll!_NT_TIB*)@$teb)->StackBase;!teb;dps@$t1@$t2

试了一下,终于找到点蛛丝马迹

最后一行输出的,像是运行某个线程崩溃,看到ucrtbase想到,在测试的电脑上能出现但是在其他同事的电脑上不会出现,是不是测试的电脑的电脑上没有安装VS环境,导致和我们的电脑里的ucrtbase.dll不一样导致的,把我的电脑VS下的ucrtbase.dll拷贝到测试电脑里程序运行目录下,果然,没问题了,完结撒花。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值