cr0*_*z3r 4 windows-7 crash bsod
今天登录 Windows 7 时,我的电脑立即蓝屏了。使用 WhoCrashed 我得到以下报告:
——
这似乎是一个典型的软件驱动程序错误,不太可能是由硬件问题引起的。崩溃发生在 Windows 内核中。可能这个问题是由目前无法识别的另一个驱动程序引起的。
——
现在,我的 PC偶尔会崩溃/死机,并且在过去执行特定的重性能任务时,它的原因(我认为)是我的主板中的 RAM 插槽有缺陷。保持该插槽为空停止崩溃。
今天,它又崩溃了,我没有改变任何与硬件相关的东西。
我知道我可以去谷歌阅读这个错误检查代码的含义,但最近我开始意识到来自某人(具有相同的错误检查/问题)的个人经验更有用,特别是因为这个人可能已经来了解决方案。
非常感谢!
Ian*_*oyd 11
在这种情况下,一个线程遇到了异常
C0000096: STATUS_PRIVILEGED_INSTRUCTION
Executing an instruction not allowed in current machine mode.
Run Code Online (Sandbox Code Playgroud)
此错误是由 CPU 本身引发的。某些代码试图执行不允许执行的指令。这可能是由内存损坏引起的;内核代码试图执行垃圾数据的地方。
这种错误确实无法查明。“内核”代码中有一个不应该发生的错误。Microsoft 的任何代码中都不太可能存在软件错误。这就是你开始寻找别处的时候。
超频。有时超频时会发生非常奇怪的事情。希望每个人都向微软发送他们的崩溃转储;因为微软确实在调查他们。他们会得到的一个常见错误是 CPU 执行指令时:
xor eax, eax;
Run Code Online (Sandbox Code Playgroud)
这是 CPU 可以执行的异常简单的操作;它只是将内部 CPU 寄存器EAX设置为零。有没有办法可以失败; 除非您超频 - 或其他身体问题。
tl;dr:如果你去掉了软件,那就是硬件。
我想提一下我经历的细节,在查看这个错误时几乎是无意识的。
第一个是实际的错误检查代码:
0x1000007E - SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M
Run Code Online (Sandbox Code Playgroud)
在 Google 上绑定它会提供 Microsoft 文档页面
错误检查 0x1000007E:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M
这表明系统线程生成了错误处理程序未捕获的异常。
我知道,根据作为开发人员的经验,如果我的应用程序(或其一个线程)遇到“异常”,而我不“处理”异常,Windows 最终将通过终止应用程序来处理它。如果在内核模式下发生未处理的异常,操作系统别无选择,只能通过关闭内核来处理它。我感兴趣的是抛出了哪个 异常。我认为(事实证明是错误的)这是“访问冲突”。
我知道所有错误检查都伴随着四个描述实际发生情况的参数:
但这些到底是什么意思?!那是我们回到文档页面的时候,它没有描述它们。但它确实说:
错误检查 0x1000007E 与错误检查 0x7E (SYSTEM_THREAD_EXCEPTION_NOT_HANDLED)具有相同的含义和参数。
优秀。另一个页面记录了参数:
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED 参数
以下参数出现在蓝屏上。
- 参数1:未处理的异常代码
- 参数2:异常发生的地址
- 参数3:异常记录地址
- 参数4:上下文记录的地址
这就是我想要的,未处理的异常代码。在您的情况下,它是异常代码:
0xFFFFFFFFC0000096
Run Code Online (Sandbox Code Playgroud)
根据经验,我知道您在 64 位 Windows 上运行,因为该代码是 64 位长。我真的只想要较低的 32 位:
0xC0000096
Run Code Online (Sandbox Code Playgroud)
通常我会期望winerror.h在我的开发目录中找到该错误代码;但它不在那里。花了一些 Binging,但我发现搜索:
winerror C0000096
把我带到一个关于winehq的页面,它声明了常量:
STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096
Run Code Online (Sandbox Code Playgroud)
坚持不懈地为我带来了一个规范的 Microsoft 文档页面:
硬件异常
STATUS_PRIVILEGED_INSTRUCTION: 执行当前机器模式下不允许的指令。
我也知道这个异常是由 CPU本身抛出的。我知道因为“特权指令”意味着您试图执行您不允许的 CPU 指令。我也可以知道这一点,因为该页面称为Hardware Exceptions。
所以我们正处于一些代码正在运行的时候,试图执行它不应该执行的 CPU 指令。有两种可能:
鉴于微软的代码每天都在数百万台机器上不断地进行现场测试,更有可能:
无论如何,这是怎么我的工作是检测错误。也许通过了解我是如何经历的,它可以在您下次进行错误检查时为您提供帮助。
| 归档时间: |
|
| 查看次数: |
6726 次 |
| 最近记录: |