«Windows 10 驱动开发笔记: 搭建 Debug 环境(WinDbg 和 Visual Studio)»
by pluvet on Jan 9, 2020

Windows 10 驱动开发笔记

搭建 Debug 环境

第一步, 在 VirtualBox 安装 Windows 10. VirtualBox 是一个虚拟机软件, 你也可以用 VMWare 等同类软件. 下文简称虚拟机中的 Windows 10 为虚拟机.

第二步, 在虚拟机中以管理员模式打开 cmd 或者 powershell. 运行下面的命令:

bcdedit /debug on
bcdedit /dbgsettings serial debugport:1 baudrate:115200

对了, debugport:1 表示我们使用 COM1 串口进行调试. 和下一步中的 COM1 对应.

然后建议在虚拟机中启用增强功能, 具体方法:

image-20200109164233971.png

在虚拟机中 "此电脑" 找到新增的盘符里的安装文件安装即可.

为了有 DEBUG 输出, 虚拟机中进行如下配置:

打开注册表编辑器(regedit)定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager, 新建项(Key)(类似文件夹), 命名为Debug Print Filter, 在其下建立值(REG_DWORD), 名之DEFAULT, 值f. 这里如果设置出错, WINDBG 将不打印调试信息 注册表的更改只有重启后生效.

第三步, 配置 VirtualBox 所需串口.

把虚拟机关机. 在虚拟机设置中按下图操作设置:

image-20200109163711585.png

对了, \\.\pipe\myDbg 这里是我自己的设置. 你也可以不取 myDbg 这个名.

注意, 取消勾选 Connect to existing pipe/socket

保存.

第四步, 开虚拟机和 WinDbg. WinDbg 可以通过搜索 (Win+S) 找到:

image-20200109164025127.png

如果还是找不到, 请下载并安装 WDK10. 你还可以使用 Microsoft Store 里的 WinDBG Preview

第五步, Attach to kernel. 在 WinDbg里, 对于我的软件版本, 选择 File / Debug Kernel 就会弹出这样的窗口:

image-20200109165040535.png

我们不能直接用 com1, 因为这里的 com1 是真机的 com1, 但我们需要连接虚拟机的 com1, 虚拟机的 com1 在真机下的形式是 \\.\pipe\myDbg. 设置如下:

image-20200109165452854.png

点击 OK 开始连接. 你会看到:

Microsoft (R) Windows Debugger Version 10.0.18362.1 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\pipe\myDbg
Waiting to reconnect...

现在我们已经可以调试了. 不妨试试, 点击暂停:

image-20200109170140352.png

你会发现虚拟机中的 Windows 10 卡住了, 点击继续 (Go) 又可以继续运行了.

通过 WinDbg 我们可以拥有全面的调试功能, 但是对于开发效率而言, 结合 Visual Studio 会更好. 配置方法大同小异, 请参考微软的文档.

参考:

  1. Setting Up a Windows 7+ Virtualbox VM for Kernel Mode Debugging
  2. 开始使用 WinDbg (内核模式)
  3. 预配计算机以便进行驱动程序部署和测试 (WDK 10)

添加新评论