我似乎遇到了一个很奇怪的问题,并为想法而烦恼。
设置:
通过网络进行- 内核调试。我很确定安装程序是正确的并且可以正常工作,因为我使用它来调试很多东西
- windbg已加载调试内核模块和符号。内核模块具有定期打印功能
- 将内核模块用于的自定义硬件插入目标系统
复制:
- 在目标上启动Repro App
- 目标系统运行一段时间。在此期间,在windbg上显示了内核模块的打印内容
- 在某个时候。 windbg的打印停止,并且windbg也无法中断。目标也无响应,显示消失。但是,没有错误检查,没有TDR或任何表明致命故障的信号(我什至已经等了整整24个小时,看它是否没有运气被卡住了)
- 有趣的是,我们的自定义硬件可以让我物理上产生一个中断。当我这样做时,windbg会短暂恢复一段时间,有时甚至会让我闯入它(如果在生成中断时不断按break的话)。
- 继续使用调试器只会导致其再次卡住
我目前的想法是,某种原因导致Windows陷入某个地方的循环中,而中断是高优先级的,因此使内核能够退出该循环并对其进行处理。问题是,我无法解释
- 为什么这也会使windbg暂时松开
- 是什么原因导致Windows内核本身陷入困境而无法生成TDR或错误检查?
如上所述,我对应该尝试或做的事情感到很困惑。因此,任何想法都值得赞赏!