CLOCK_WATCHDOG_TIMEOUT
因为最近自己的电脑总是蓝屏,并且显示一个极为离谱的错误代码
蓝屏提示:CLOCK_WATCHDOG_TIMEOUT
所以就查这个代码是什么意思,很多blogs说bios(硬件相关输入输出)有问题。这有问题岂不得够折腾了,那怎么弄呢?
设备:拯救者r7000p,Windows10,原厂,AMD,16G内存,512SSD。
查看有关文档
这一步是因为目前很多博客上的文档已经解决不了我的问题了,所以我去检索了相关文档,果然,是硬件开发者玩的东西。 那就只有硬着头皮看呗,我唯一的提示就是蓝屏错误代码了。
找到:`Bug 检查 0x101:CLOCK_WATCHDOG_TIMEOUT` 指定的处理器不处理中断。通常,当处理器无响应或死锁时,会发生这种情况。

我理解的大概意思就是:硬件摆烂了,不能中断(CSAPP中大致如下:四类异常中的一种,异步产生,来自处理器外部的I/O设备的信号的结果。与核、多线程的工作原理息息相关)
程序死锁我真不知道怎么办,又不是我干的,玩个游戏线程不够用了?
现在,我能唯一处理的大概就是检测硬件然后换硬。
先寻找360帮忙
360有蓝屏检测器,于是我用了。但是我居然因为日常清理把蓝屏日志文件清除了!
那就只能检测硬件了。Windows 内存诊断工具
大概方式就是找到相应的系统自带的软件,然后进行相应的检测,并且记录相关检测结果。
无用,所有硬件单元检测没有问题。那大概意思就是硬件没有问题。
那么现在的我就是束手无策。
分析蓝屏错误文件
终于在第二天上午得到了蓝屏,一样的TIMEOUT。
于是我拿到了蓝屏错误文件 MEMORY.DMP。那么怎么分析它呢?
DMP为非简单二进制文件,无法正常用记事本打开。
所以用windows官方的debug工具:windbg
一开始用错了一个,因为版本过低,只适合部分win10版本。于是折腾一个小时才换了新的。(极大多数博客都是用的老版windbg,毕竟新版才一两年)
当然,调试指令很简单,知道把dmp文件打开然后执行 !analyze -v 就行了。

分析文件如下:
1 | CLOCK_WATCHDOG_TIMEOUT (101) |
原因找到了。因为我的VM虚拟机。
我万万没想到是它。我的理解大概就是vm调用处理器线程的时候死锁现象(句柄未释放造成死锁?)出现了bug;我的电脑硬件没有问题。
可能是我给虚拟机设置的处理器太多了(2*4),占了一半了。离谱 ~~
2022-03 20 :
问过计组老师,老师说不可能因为vm程序调用内核进程原因导致蓝屏问题。留个问题在这。