工作中难免需要查看dump,现在VC2015对dump的解析已经非常好了,自动化程度做的也很不错,只要设置了symbol路径,则绝大部分dump都可以自动解析。但有的dump,函数堆栈不够清晰,默认情况下windbg/cv2015都无法准确解析,这里就需要windbg来手动处理了。处理步骤如下:
1. 问题示例。
0:025> knb
# ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
00 3211f0c0 76273520 ntdll!NtDelayExecution+0x15
*** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll -
01 3211f0d0 75c2270d KERNELBASE!Sleep+0xf
02 3211f0e4 75c07890 kernel32!GetProfileStringW+0x15161
03 3211f0f4 75c0780f kernel32!UnhandledExceptionFilter+0x161
04 3211f180 77bd21d7 kernel32!UnhandledExceptionFilter+0xe0
05 3211ffd4 77b99ea5 ntdll!RtlKnownExceptionFilter+0xb7
06 3211ffec 00000000 ntdll!RtlInitializeExceptionChain+0x36
这里输入knb没有显示自己的库堆栈信息。
2. 输入kvn,得到更多信息。
# ChildEBP RetAddr Args to Child

当Windbg或Visual Studio 2015无法准确解析某些dump文件的函数堆栈时,可以使用Windbg进行手动处理。通过输入`knb`和`kvn`命令获取更多信息,然后解析异常地址内容,最后使用`.cxr`命令重新解析堆栈并定位错误位置。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



