如何在 WinDBg 中启用内核跟踪
Posted
技术标签:
【中文标题】如何在 WinDBg 中启用内核跟踪【英文标题】:How to enable Kernel Traces in WinDBg 【发布时间】:2014-11-15 18:51:07 【问题描述】:我已经提到了这个post:
但没有帮助。 发行
ed Kd_DEFAULT_Mask 8
没有引起任何变化。而且我不知道如何在此处添加 DWORD
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter
调用 DEFAULT,值为 8,因为我在注册表下看不到 Debug Print Filter
?
我有办法验证是否安装了我的硬件的调试驱动程序,但即使在验证之后,我似乎也无法在 windbg 中获取内核跟踪。 有一个工具叫 DbgView.exe 我启用了以下捕获选项:
Capture Win32
Capture Global Win32
Capture Kernel
Enable Verbose Kernel Output
Pass-through
Capture events
我希望这将启用内核跟踪但没有帮助。
有人能告诉我这样做的标准方法吗?
【问题讨论】:
【参考方案1】:如何添加调试打印键注册表
:>reg 查询“HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter”
错误:系统找不到指定的注册表项或值
:>reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter" /V DEFAULT /t REG_DWORD /d 0xf
操作成功完成
:>reg 查询“HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter”
! REG.EXE 3.0版
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug 打印过滤器 默认 REG_DWORD 0xf
【讨论】:
我什至不知道您可以从 cmd 行中执行“reg add”,非常方便! 这是“调试打印过滤器”,而不是“调试打印”【参考方案2】:您是否尝试将默认掩码设置为 0xF?在您更改 kd_default_mask 变量后,您确定您的驱动程序实际上正在生成跟踪消息吗?
就基于注册表的方法而言,您只需创建调试打印过滤器键(如果它不存在)。
【讨论】:
【参考方案3】:您需要创建此密钥。该键默认不存在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug 打印过滤器 将默认值设置为 0xf。这将启用所有消息。
更多信息可以在“设置组件过滤器掩码”中找到 https://docs.microsoft.com/de-de/windows-hardware/drivers/devtest/reading-and-filtering-debugging-messages#identifying-the-component-name
还有一个说明如何为单个调试器会话设置此项
【讨论】:
以上是关于如何在 WinDBg 中启用内核跟踪的主要内容,如果未能解决你的问题,请参考以下文章