VirtualBox

Windows 内核调试技巧

内核调试设置

Windows 内核调试需要两台计算机——“目标计算机”(运行被调试代码)和“主机”(运行调试器)。主机和目标计算机可以通过零调制解调器(串口到串口)电缆或 Firewire (1394) 电缆连接。1394 更快,因此更受欢迎。

1394 调试的目标计算机配置

对于 Vista+ 系统,请从提升的控制台运行以下命令

  1. bcdedit /copy {current} /d "Windows with 1394 debugger enabled (ch 10)"
    • 该命令应创建一个新的启动项并打印:“该条目已成功复制到 {guid-string}”
  2. bcdedit /set {the-above-guid-string} debug on
  3. bcdedit /set {the-above-guid-string} debugtype 1394
  4. bcdedit /set {the-above-guid-string} channel 10
    • 注意:可以使用任何通道号,但主机和目标使用的通道当然应该匹配。为简单起见,本文中我们始终使用 10。
    • 注意:一旦您不再需要内核调试,可以通过从提升的控制台运行以下命令来删除上述条目
      bcdedit /delete {the-above-guid-string}
      

主机配置

  1. 安装适用于 Windows 的调试工具。您可以按照此处描述的方式,将其作为 Windows SDK 中的独立组件进行安装。
    • 32 位和 64 位版本的调试工具都可用于调试 32 位和 64 位目标。
  2. 运行 WinDbg 调试器:“开始”->“所有程序”->“适用于 Windows 的调试工具”->“WinDbg”。
  3. 设置 WinDbg 符号路径:“文件”->“符号文件路径”-> 在“符号文件路径”对话框中,在编辑框中输入“srv*c:\symbols*http://msdl.microsoft.com/download/symbols”(不带引号)->“确定”。
    • 注意:这里的 C:\symbols 是您的下游存储路径,即下载的符号将存储/缓存的路径。您可以使用任何路径。

启动内核调试

主机和目标计算机都按照上述步骤配置后,您可以按照以下步骤开始内核调试

  1. 使用 1394 电缆(用于 1394 调试)或零调制解调器电缆(用于零调制解调器调试)连接主机和目标计算机。
  2. 请分别在主机和目标计算机上执行以下步骤

主机

  1. 运行 WinDbg 调试器:“开始”->“所有程序”->“适用于 Windows 的调试工具”->“WinDbg”。
    • 注意:首次设置 1394 内核调试时,您需要以提升的权限(即“以管理员身份运行”)运行它,以便能够安装必要的 1394 调试驱动程序。
  2. 对于 1394 调试:在 WinDbg 中执行:“文件”->“内核调试”-> 打开“1394”选项卡并在“通道”编辑框中键入“10”(不带引号)-> 按“确定”。
    • 首次执行时,您会看到 WinDbg 正在安装 1394d 驱动程序的进度。
    • 最后 WinDbg 应打印类似以下内容:
      Opened \.\DBG1394_INSTANCE10
      Waiting to reconnect...
      

目标计算机

  1. 开启目标计算机电源
  2. 在显示的启动菜单中,选择您之前按照“内核调试设置”部分中的步骤添加的条目,例如“Windows with 1394 debugger enabled (ch 10)”。

常见内核调试任务

注意:除非另有说明,此处列出的所有任务均列出了应在调试器命令窗口中输入的 WinDbg 命令。命令窗口仅在被调试器中断时才激活。要强制目标系统中断,请使用 <ctrl>+<break>,要恢复,请使用“g”命令(当然在调试器命令窗口中)。

使用 WinDbg 创建转储文件

  1. 小型转储 (Minidump)
    .dump /m <dump\file\path\on\the\host\system.dmp>
    
  2. 完全内存转储
    .dump /f <dump\file\path\on\the\host\system.dmp>
    
  3. 内核内存转储 - 无法使用 WinDbg 完成
最后修改 11 年前 最后修改于 2014 年 6 月 16 日下午 02:52:54
注意: 查看 TracWiki 获取使用维基的帮助。

© 2025 甲骨文公司 支持 隐私 / 请勿出售我的信息 使用条款 商标政策 自动化访问礼仪