如何在 Visual Studio 中调试/分析 BSOD 转储?
Posted
技术标签:
【中文标题】如何在 Visual Studio 中调试/分析 BSOD 转储?【英文标题】:How to debug / analyze BSOD dump in Visual Studio? 【发布时间】:2016-11-30 16:02:29 【问题描述】:我有 BSOD,它在 C:\Windows\Minidump 中创建了 DMP 文件。然后我用 Visual Studion 打开这个文件,文件 -> 打开 -> 崩溃转储。它打开了一些东西,但看不到任何合理的东西。
这是开始分析故障转储的正确方法吗?
我应该在 VS 中看到什么?
我可以查看调用堆栈吗?
Debugger Immediate Window
中出现以下内容:
WinDbg 也出现类似情况:
任何地方都不能输入任何键或命令。
【问题讨论】:
看起来符号仍在从 Microsoft 符号服务器加载。在这种情况下是否有任何网络流量?你等了多久了? (有时,符号加载完成需要几分钟。)如果File --> Symbol File Path
设置为SRV*http://msdl.microsoft.com/download/symbols
,还要检查WinDbg。如果您想加快下一次调试会话的符号加载时间,您可以配置本地符号缓存。
!analyze -v
的输出太短。该命令尚未完成。你的符号路径是空的,所以先fix it。
【参考方案1】:
在 Windbg 中分析 dmp。通过Windows 10 SDK 获取 WinDbg。在安装过程中选择Debugging Tools for Windows
。
现在运行 Windbg.exe
,加载 dmp,fix your debug symbol path 并运行 !analyze -v
到 start the automatic debugging。查看MSDN documentation STOP 代码的含义以及可用于更深入地调试问题的其他命令。
【讨论】:
看来OP已经安装/启动了WinDbg并加载了dmp。【参考方案2】:根据此处文档中的“要求和限制”:https://msdn.microsoft.com/en-us/library/d5zhxt22.aspx,当发生内核模式错误时,Microsoft Windows 的默认行为是显示带有错误检查数据的蓝屏,以调试内核模式在 Visual Studio 2013 中转储文件,您需要下载 Windows 8.1 版本的 Windows 调试工具。
关于如何在 Microsoft Visual Studio 中执行内核模式调试:
https://msdn.microsoft.com/en-us/library/windows/hardware/hh451163(v=vs.85).aspx
关于如何使用Windbg工具调试windows转储文件,您可以在此处获取详细步骤:
http://timtrott.co.uk/debug-windows-crash-dumps-minidump/
就像haindl的建议,你必须从微软服务器下载符号。
【讨论】:
以上是关于如何在 Visual Studio 中调试/分析 BSOD 转储?的主要内容,如果未能解决你的问题,请参考以下文章
VS2015--win32工程配置的一些想法之在 Visual Studio 2015 中进行调试的同时分析性能