windows driver双机调试环境搭建,用windbg或者debug view查看内核调试输出

这篇具有很好参考价值的文章主要介绍了windows driver双机调试环境搭建,用windbg或者debug view查看内核调试输出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本地环境

  • 本地开发环境: win 10, visual studio installer(2022版), visual studio 2022, VMware player
  • 目的:本地环境作为开发环境,VM作为测试和调试环境
  • 用debug view查看内核调试输出请直接看最后 debug view查看内核打印信息 部分

开发环境搭建

  • 通过 visual studio installer 下载安装 visual studio 2019
  • 通过 visual studio installer 下载安装win10 SDK
  • 下载安装WDK(windows 10 版本)
  • 安装WDK.vsix
WDK.vsix路径在C:\Program Files (x86)\Windows Kits\10\Vsix\VS2019 或者 C:\Program Files (x86)\Windows Kits\10\Vsix。
这个插件的版本和visual studio的版本要对应,最新的WDK(windows 10 版本)的插件对应的只能安装在visual studio 2019

调试/测试环境搭建

  • VMware player 创建WIN 10 虚拟机。添加串口参考
需要设置网络连接方式为桥接
需要删除打印机(如果有的的话)
需要添加一个串行端口,并设置命名管道属性和开启CPU轮询

注意:
	VMware player创建命名端口后,启动虚拟机可能会提示 serial0: Unable to create the server-side instance of the "***" named pipe: The filename, directory name, or volume label syntax is incorrect.
	这可能因为管道的名称格式不对,我试了下设置成\\.\pipe\com<数字>的格式(比如 \\.\pipe\com1)成功了,网上有人设置成.\pipe\com<数字>也成功了
  • VM安装上面下载的WDK
  • 安装驱动开发平台对应的目标安装MSI,详细参考
如果构建的driver是基于x64平台,则msi路径如下:
C:\Program Files (x86)\Windows Kits\10\Remote\x64\WDK Test Target Setup x64-x64_en-us.msi

安装这个msi是后面visual studio部署要用,不安装的话用visual studio部署会失败
  • VM添加debug启动项, 参考,设置完成后windows搜索栏输入msconfig找到System Configuration应用,进入应用后点Boot项查看修改的结果
以管理员身份打开CMD, 依次输入以下命令
bcdedit
bcdedit /dbgsettings serial baudrate:115200 debugport:1  
bcdedit /copy {current} /d DebugEntry  
	这个命令会生成一串GUID,保存这个GUID,后面的ID用此GUID替换
bcdedit /displayorder {current} {ID} 
bcdedit /debug {ID} ON  

  • 设置VM的内核dbg信息输出级别
打开windows Registry editor, 修改注册信息:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter
如果没有这个key就添加这个key
在这个key下添加或修改 “DEFAULT" (是DWORD 类型,32位或64位应该无关),值为 0xffffffff

开发driver并部署到VM

  • windows 提供的driver开发hello world教程,教程有详细的代码和开发部署调试步骤,但有些步骤不详细(比如调试)
  • 按照教程创建工程写代码
  • 按照教程构建
  • 按照教程部署。 添加device参考
首次部署target device列表是空的需要添加device,添加device时,display name可以随便写,Network host name填VM的ip地址。
填完后一直点next,等visual studio自动准备好target(也就是VM)的环境,然后点finish完成设备添加,回到部署对话框。
部署对话框中要添加hardware ID, 这个id在生成inf文件中,我的文件中内容是:
[Standard.NTamd64]
%hello_driver.DeviceDesc%=hello_driver_Device, Root\hello_driver ; TODO: edit hw-id
其中amd64表示开发平台因为我构建设置的平台是x64,Root\hello_driver就是hardware ID
  • VM安装driver
VM上以管理员身份运行CMD,输入以下命令:
C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe <INF file path> <hardware ID>

INF文件 一般在C:\DriverTest\Drivers, hardware ID就是上面提到的hardware ID。这种安装方式是hello world教程里提供的,不同的driver有不同的安装方式。
如果INF文件提供了DefaultInstall属性,可以直接右键点击INF文件然后点击安装。
  • 启动driver
启动方式和INF文件里StartType的配置有关,此项配置在Services Section里配置。

如果配置的是SERVICE_DEMAND_START,则需要手动启动driver。以filter driver为例,启动命令是:FLTMC load [ driverName ]

windg连接VM进行调试

  • 按照上述步骤VM环境搭建完成并安装了driver
  • 本地主机执行命令
windbg.exe -y <pdb file path> -k com:pipe,port=\\.\pipe\com1,resets=0,reconnect

执行成功windgb会显示等待连接文章来源地址https://www.toymoban.com/news/detail-461406.html

  • 重启VM,windbg就可以成功连接了,至此就可以看到内核打印的信息了。

debug view查看内核打印信息

  • 微软的debug view
debug view 查看debug信息是更简单方便的信息,用搜狗或者百度去查找debug view下载地址结果都是华军软件软之类的下载站。
直到一次用Bing搜索才发现微软提供了debug view下载。唉,国内的搜索引擎真的毁人青春。
  • 设置VM的内核dbg信息输出级别,参考上面 调试/测试环境搭建
  • 在VM上以admin权限运行debug view,然后点顶部menu里的capture kernel(快捷键 Ctrl + k)就能看到内核 debug 打印信息了

到了这里,关于windows driver双机调试环境搭建,用windbg或者debug view查看内核调试输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VSCode 默认在DEBUG CONSOLE调试无法输入输出 gdb调试 解决方案 及Windows上C/C++环境配置

            从零重新安装的VSCode,无设置和其他插件,Win10系统,MinGW g++及gdb在环境变量中,发现VSCode调试C/C++程序时永远启用DEBUG CONSOLE而不是集成终端TERMINAL:         TERMINAL中只有launch.json中提供的参数启动debug的只读内容,无法进行输入输出,而cout输出的内容在DEBU

    2024年03月20日
    浏览(41)
  • Windows/macOS使用VSCode搭建C/C++的开发/Debug环境

    本文面向的对象是初次接触搭建C语言开发环境的学生或编程爱好者,以及想脱离诸如VC++6.0等过时开发工具从而转用VScode的人群 本文内容较多,篇幅较长,可按照需要选择阅读,文中如有纰漏,欢迎斧正。 我郑重承诺下面会是一篇极为详细的教程: 目录 一、安装并配置VSc

    2024年02月08日
    浏览(50)
  • windbg-windows调试工具来抓端游crash dump

    windbg下载有两种方式: Install WinDbg - Windows drivers | Microsoft Learn 从微软应用商店下载 dump上的windows的局部变量解析部分进行windbg本地解析查看 下载对应crash链接中的dmp(即minidump)、pdb、exe文件至本地 打开winDbg工具,进行配置 配路径:Settings —— Debugging settings—— Source path配

    2024年02月19日
    浏览(35)
  • window10_ffmpeg调试环境搭建-自己编译

    《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 《window10_ffmpeg调试环境搭建-极速版》已经介绍了在qt creator里面 调试ffmpeg.c 工程。但是极速版的dll是现成的。所以本文来讲解如何自己编译出ffmpeg的dll。 window10 环境下 ffmpeg的编

    2023年04月09日
    浏览(88)
  • flutter开发实战-Release环境与Debug调试环境配置实现

    flutter开发实战-Release环境与Debug调试环境配置实现 在开发中,我们经常遇到Release与Debug相关请求等配置隔离。这里记录之前的实现方案。 在实现之前,我们需要先看下git_it 在开发过程中,需要App的部分逻辑与Widget分离。git_it和provider都可以用作状态管理,这里使用的是git_i

    2024年02月16日
    浏览(45)
  • IDEA Go语言开发环境无法debug调试

    使用idea 搭建go开发环境后如果debug调试可能会遇到错误: could not launch process: decoding dwarf section info at offset 0x0: too short。 有些回答go get -u github.com/derekparker/delve/cmd/dlv 。如果使用go mod方式开发的话这种方式是行不通的,最直接的方法是把dlv项目下载下来自己编译生成dlv.exe。 进

    2024年02月14日
    浏览(47)
  • 【ETL工具】本地环境IDEA远程DEBUG调试Flume代码

    🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油! 🪁🍁🪁🍁🪁🍁🪁🍁 目录 🦄 个人主页——🎐个人主页 🎐✨🍁 一、问题说明 二、操作步骤 2.1 idea创建远程调试 Flume 自定义 HDFS-Sink,远程服务器进行部署flume打包好后的代码,本地监控远程flume程序

    2024年02月08日
    浏览(42)
  • Windows Driver开发_安装与配置环境

    首先到这个网站里去下载Visual Studio2019,注意目前最新版的WDK仅支持Visual Studio2019,如果要下载2022版本目前推出了预览版,但需要申请下载,所以这里以2019为例。 以前的 WDK 版本和其他下载 - Windows drivers | Microsoft Docs 打开网站后往下拉,找到Visual Studio2019下载,选择一个适用

    2024年02月05日
    浏览(43)
  • IDEA工具远程DEBUG调试K8S环境中的容器应用(Java应用)

    IDEA远程调试kubernetes环境中的容器应用(Java应用) 应用场景:Java开发的项目在本地运行正常,然后将 容器运行方式的项目发布到远端服务器上线运行后,出现了异常情况,此时频繁去修改代码发布镜像进行问题验证,将耗费较大的时间成本。 为了提高问题定位和代码调试效率

    2024年02月10日
    浏览(48)
  • Net 高级调试之四:Windbg 动态调试

    一、简介 今天是《Net 高级调试》的第四篇文章。到今天为止,也有三篇文章了,对 Windbg 也有初步的认识了,当然,一个工具流畅、熟练的使用,对于我们调试 Net 程序是至关重要的。在前几篇文章的基础上,我们这篇文章主要介绍一些和使用 Windbg 有关的命令和操作。就我

    2024年02月06日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包