我的实际目标是找出导致 HP ProBook 450 G3 每周发生一次冻结的原因(对除电源按钮之外的任何按键没有反应;但是有明显的活动,并且冷却器实际上变得比平均水平更活跃)。但我意识到,在这种形式下,问题是无可救药的笼统,可能有几十个非常不同的原因。所以我决定专门询问是否有一些工具可以用来窥视系统内部——找出哪些进程正在运行,等等。
如果是安卓平板电脑,我会知道该尝试什么:通过 USB 将其连接到健康的计算机并运行 adb;如果设备可见,我可以使用 logcat。
所以我的问题只是:是否有一些类似于 adb 的工具可以在两个 Windows 系统之间工作?
我在这里发现的一个相关问题是使用 WinDbg “闯入”严重挂起的内核崩溃,看看发生了什么?; 它没有答案,但在问题本身中提到了 WinDbg。如果我理解正确,这将无济于事,因为 WinDbg 已安装并在同一台机器上运行。或者有没有办法使用 WinDbg 作为两台机器之间的调试桥?
另一个相关问题是当任务管理器也被冻结(直到 Windows 解冻)时,如何找到冻结 Windows 10 的罪魁祸首?,它有一个答案,但这对我也无济于事-它建议始终运行任务管理器,即不涉及其他计算机,并且对于很少发生的冻结是不切实际的。
答案取决于您要做什么:
用户空间——如果操作系统还活着但视频输出卡住了
ADB 通常仍然要求目标设备有一个正常工作的操作系统——比如
adb shell
或者adb logcat
真的只是连接到一个特殊的应用程序,让你检查其他与应用程序相关的东西。同样,如果您的 Windows 操作系统仍然能够接收网络连接并启动新进程,则您有几个可以提供标准命令行访问的服务:
SSH – OpenSSH默认与最新的 Windows 10 版本一起提供,并且易于启用。(对于旧版本,Bitvise WinSSHD是最不烦人的替代方案。)您可以使用
ssh
命令或使用 PuTTY 进行连接。PowerShell 有PS-Remoting,设置起来有点麻烦,通常需要另一个 Windows 系统来连接。
还有各种半旧版 DCOM RPC 接口,可让您在远程系统(
qprocess /server:<target>
或tasklist /s <target>
)上运行列表进程或访问事件日志(eventvwr.msc 具有“连接到另一台计算机”)或各种其他管理任务。(当然有图形远程桌面,但由于它的工作方式——通过 RDP 连接时将整个桌面与 GPU分离——在你的情况下,它可能不是一个好的调试工具。
另一方面,还有一个隐藏的快捷方式WinCtrlShiftB会尝试重置 GPU 驱动程序,以防万一这是唯一的问题。)
内核空间——如果你确定操作系统完全挂起
如果操作系统是完全楔入的,那么远程内核调试就不是什么新鲜事了。(我认为它是驱动程序开发的一个组成部分。)我对此毫无经验,但请参阅Microsoft Docs 上的本节,了解将在第二个系统上运行的调试器附加到您的操作系统的各种方法。
(例如,链接的帖子猜测,曾经是 USB 更强大的竞争对手的 FireWire (IEEE 1394) 可能会通过其 DMA 支持被滥用。事实上,Windows 长期以来一直支持1394 调试连接,尽管最近由于硬件支持越来越少而将其删除。)
从网站上看,首选方法是通过以太网,只要被调试系统上的驱动程序支持此功能即可。该站点上列出的其他方法是串行的(如果您有一台带有“COM1”排针的台式电脑)或 USB(需要特殊的有线电缆)。