【问题标题】:WinDbg Unresponsive After CrashWinDbg 崩溃后无响应
【发布时间】:2013-02-20 10:04:54
【问题描述】:

我正在调试 VirtualBox VM 中的驱动程序,WinDbg 通过作为命名管道暴露给主机的 COM 端口连接到目标。

调试工作正常 - 我可以暂停目标、设置断点、单步执行源文件 .etc

当我的驱动程序遇到致命错误时,WinDbg 将以下输出转储到控制台:

*** Fatal System Error: 0x00000050
                       (0xFFFFF88004126840,0x0000000000000001,0xFFFFF88003E12690,0x0000000000000000)

Driver at fault: 
***  MYDRIVER.sys - Address FFFFF88003E12690 base at FFFFF88003E12000, DateStamp 51249ae5
.
Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

Connected to Windows 7 7601 x64 target at (Wed Feb 20 09:57:54.670 2013 (UTC + 0:00)), ptr64 TRUE
Loading Kernel Symbols
...............................................................
................................................................
..............
Loading User Symbols
.....
Loading unloaded module list
.....Unable to enumerate user-mode unloaded modules, Win32 error 0n30
Loading Wow64 Symbols
..........................................................
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 50, {fffff88004126840, 1, fffff88003e12690, 0}

调试器命令行上的小状态框是空白的,调试器不响应我输入的命令。

我想查看调用堆栈并检查机器状态,但调试器仍然没有响应。按 BREAK/CONTINUE 似乎没有任何效果。

我不明白 - 此时调试器的状态是什么?

我怀疑我的整个调试设置非常非常缓慢。

【问题讨论】:

  • 您的操作系统崩溃了,当驱动程序崩溃时这很正常。当然,调试器也不再工作了,那个 COM 端口是一只死鹦鹉。您可以从核心转储中获得事后分析。 msdn.microsoft.com/en-us/library/windows/hardware/…
  • 我不相信你是正确的。大约五分钟后,调试器确实会唤醒。
  • 调试器可能非常慢,尤其是通过 com 端口。还将相关符号文件放在快速、可访问的位置(例如,不在远程网络上),并且不要加载操作系统符号(它们很大,通常从远程主机加载)
  • @icepack 感谢您的建议。你有这方面的参考资料或教程吗?我想我可能正在使用 Microsoft 符号服务器加载操作系统符号。
  • 只需从文件->符号文件路径中删除所有您无法识别的引用。只留下您自己的驱动程序符号的路径。

标签: windows debugging driver windbg


【解决方案1】:

通过 com 端口调试非常慢,你必须切换到 virtualkd - http://virtualkd.sysprogs.org/(它使用主机和来宾之间的共享内存,而且速度要快得多)。在你等待的时候不要按任何东西,它的速度会慢一点。 一般com已经过时了,调试的时候,没有vm,都用firewire或者usb接口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-08
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多