一:背景
1. 讲故事
前些天有一位朋友在公众号上找到我,说他们的WinForm程序部署在20多台机器上,只有两台机器上的程序会出现崩溃的情况,自己找了好久也没分析出来,让我帮忙看下怎么回事,就喜欢这些有点调试基础的,dump也不需要我指导怎么去抓,接下来我们就上windbg开始分析吧。
二:WinDbg分析
1. 为什么会崩溃
寻找崩溃的表象比较简单,使用 windbg 的 !analyze -v
命令即可。
0:000> !analyze -v
...
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 0000000000000000
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 0
...
STACK_TEXT:
0000003f`76f7ed58 00007ffa`f7c66d88 : 0000003f`00006120 00007ffa`f7bf98da 00000000`00000000 0000e4f5`bb3ba231 : user32!NtUserWaitMessage+0xa
0000003f`76f7ed60 00007ffa`f7bf9517 : 0000003f`00006120 0000003f`76f7ee80 00000000`00000000