![调试挂起,Ctrl Alt Delete 不起作用](https://linux22.com/image/1351159/%E8%B0%83%E8%AF%95%E6%8C%82%E8%B5%B7%EF%BC%8CCtrl%20Alt%20Delete%20%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
最近,当我浏览网页时,我的电脑突然死机了。Ctrl-Alt-Delete 不起作用,所以我不得不关闭电源并重新启动。
现在我想知道我该怎么做才能诊断并确定它挂起的原因。
我读到你可以迫使系统崩溃,但在我得到内核内存转储后,我该如何在 windbg 中找出它挂起的原因?
如果我不能使用 ctrl-alt-delete,这还能用吗?还有其他方法可以解决这个问题吗?
答案1
当系统死机时,您无法分析情况。通常,您甚至无法进行任何事后分析,因为没有记录有关挂起的信息。
您链接的文章中描述的方法旨在供驱动程序开发人员使用有导致崩溃以进行测试。对于您的情况,这不会有所帮助,主要是因为发生这种情况时您没有设置注册表项。如果如果你设置了它,你可能会导致崩溃,并且会进行内存转储以进行事后分析。
我可以用它做什么?
可能什么也没有。当你通过常规崩溃收集此类转储时,它通常会包含以下易于获取的信息:WHO或者什么导致崩溃。您可以通过将转储加载到 windbg 并执行以下命令来获取该信息:
!analyze -v
但是,如果您启用了注册表选项导致崩溃,windbg 会指出键盘驱动程序导致了错误检查。
您可以检查转储中记录的其他进程和线程,以找出导致挂起的真正原因。但您应该真正知道自己在做什么和/或寻找什么。
所以我该怎么做?
随机挂起的问题在于它们是随机的。只要它们看起来是随机的,你就无能为力。你可以长时间观察该行为,直到它不再看起来是随机的。
一旦您意识到问题是由于某种模式而发生的,您就可以开始对该问题进行故障排除。
答案2
一旦您强制生成转储文件- 根据您遇到的问题,这甚至可能不起作用 - 您可以使用 WinDbg 来寻找可能的原因。在这种情况下要做的第一件事是:
!analyze -hang -v
...但具体情况取决于结果,分析这类东西需要大量经验。您甚至可能没有所有可用数据来追踪到最后(毕竟您没有所有符号)。