我正在经历一个应用程序崩溃,这是windows 7崩溃,但不是传统的"蓝屏死机"崩溃,这发生在设备驱动程序或其他内核空间进程崩溃整个系统时,而是我看到所有用户空间进程锁定。
下面是机器的状态:
(1) Windows鼠标移动仍在响应,Aero合成层仍在工作(某些鼠标在资源管理器上的效果仍在工作),但没有win32进程工作,GDI和用户会话似乎冻结。(2) Ctrl+Alt+Delete不能打开任务管理器。(3)没有崩溃转储,也没有蓝屏死机。
有谁知道如何收集更多关于坠机的信息吗?我知道涉及到驱动程序级别的问题,我想收集人们可以使用的设备驱动程序级别的信息。当您遇到蓝屏死机时,您可以收集内存转储(DMP)文件,并将其发送给开发人员以提供帮助。我正在寻找的是一种跟踪进程和系统状态的方法,也许可以连接内核调试器或其他东西。我从来没有做过内核调试器的工作,所以我正在寻找一种方法来开始。
我可以很容易地在win7/32位虚拟机中重现崩溃,而且我还没有安装内核调试工具。我首先想知道,如果我似乎选择了一种有价值的方法(内核调试工具?),如果是这样,我真的不知道如何使用这些工具来收集可能帮助内核模式开发人员定位问题的信息。
下载WinDbg并通过火线或串行电缆连接到所讨论的机器(USB在某些情况下也可以使用IIRC)。这将允许您从远程机器上搜索正在运行的系统中的死锁。
另一种可能是引发系统崩溃(事后分析)。在将崩溃转储设置为完全转储之前,您应该确保。这将创建一个与RAM大小相同的崩溃转储。当然,这可能会给人们带来问题(例如,通过网络)。还要注意,根据具体情况,转储中可能包含私有数据。
如何引发崩溃转储是我在这里描述的,下面引用了相关部分。如果您通过内核调试器连接,您还可以触发创建内存转储。
键盘驱动程序可以被告知导致BSOD:
HKLMCurrentControlSetServiceskbdhidParameters
或(对于较旧的PS/2键盘)
HKLMSYSTEMCurrentControlSetServicesi8042prtParameters
有一个命名为CrashOnCtrlScroll
的REG_DWORD
到1
。
下次重启后,可以通过Ctrl+ScrollLk+ScrollLk
强制蓝屏。在这种情况下,错误检查代码将是0xE2
(MANUALLY_INITIATED_CRASH
)。