WinDBG 内核调试有时只启动

问题描述 投票:0回答:0

对我来说,内核调试不会在每次启动时启动。在大约 70% 的启动时,WinDBG 报告连接,但随后它很快丢失并且 WinDBG 显示

Debuggee not connected
.

各种观察:

  1. 目标是Windows 11 22H2
  2. 我在两台机器上都使用 WinDBG
    10.0.22621.755
  3. 我使用
    "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\kdnet.exe" 192.168.2.1 50000
  4. 设置内核调试
  5. 在目标机器上,我使用建议的
    windbg -k net:port=50000,key=...
    命令启动 WinDBG
  6. 我多次启动/关闭目标计算机,不做任何更改,直到它最终可靠地连接
  7. WinDBG 总是通过打印消息来响应目标计算机的启动,但它通常几乎立即断开连接。
  8. 如果调试器在 Windows 登录屏幕时仍处于连接状态,则连接永远不会丢失,直到我重新启动被调试的计算机
  9. 使用
    WinDBG > Debug > Kernel connection > Cycle initial break
    并没有真正的帮助:当连接失败时,WinDBG 报告连接成功但没有中断,然后显示
    Debuggee not connected
    .
  10. 当调试器连接失败时,目标不会在桌面右下角显示``。
  11. ...但我仍然可以在网卡上的设备管理器中看到
    This device has been reserved for use by Windows kernel debugger
  12. ...我有时在设备管理器中有有时没有
    Microsoft Kernel Debug Network Adapter
  13. 使用
    WinDBG > View > Verbose output
    不会给出任何有用的消息来解释断开连接。
  14. 从连接成功后WinDBG中的
    Debuggee not connected
    来看,我理解WinDBG知道它断开连接,但由于某种原因没有给出任何解释。
  15. 连接失败的典型 WinDBG 输出:
    Verbose mode ON. Will breakin at next boot. Connected to target 192.168.2.2 on port 50000 on local IP 192.168.2.1. You can get the target MAC address by running .kdtargetmac command.
  16. 两台机器通过电缆连接到同一个路由器。
  17. 根据 SysInternals TCPView,只有 WinDBG 侦听调试器机器上的端口 50000。
  18. Windows 事件日志似乎没有任何相关消息。
  19. 启用 Windows 启动日志记录并研究
    C:\Windows\ntbtlog.txt
    但没有发现任何有趣的东西。

如何使连接可靠?是否有任何高级日志可以阅读以了解为什么目标机器无法开始调试(我从桌面右下角缺少调试通知得出这个结论)

debugging kernel windbg
© www.soinside.com 2019 - 2024. All rights reserved.