首页 > 其他分享 >windbg 搭建双击调试环境

windbg 搭建双击调试环境

时间:2024-08-12 19:49:30浏览次数:9  
标签:快照 windbg 双击 设置 符号表 我们 调试

当我们搭建好驱动开发环境后,就可以设置双机调试了,虚拟机的安装可以参考网上其他教程,比较简单,我们直接来讲设置双击调试需要注意的一些地方。

1.设置被调试的虚拟机

首先,将虚拟机关机,如果此时已经有了串行端口存在首先移除,管道名字输入 \\.\pipe\com_1,并选择“该端是服务器”、“另一端是应用程序”:

然后 win + R 打开命令行,输入 msconfig ,做如下设置先不重启:

2.设置 windbg 的快捷连接方式

由于我们之前安装 SDK 和 WDK 的时候,会默认给我们安装 windbg 经典版,若没有安装的话,也可以自己去网上找 windbg 的安装包安装一下即可,我的 windbg 安装路径是 F:\Windows Kits\10\Debuggers\x64\windbg.exe,我们需要给 windbg 提供启动参数,让它能够应该和哪个管道进行连接。我们为 windbg 创建一个快捷方式,并右键快捷方式选择属性,在快捷方式选项卡下将目标设置为:

"F:\\Windows Kits\\10\\Debuggers\\x64\windbg.exe" -b -k com:pipe,port=\\\\.\\pipe\\com_1,resets=0,reconnect -y

设置完成后,我们就可以直接通过点击这个快捷方式连接到虚拟机。

3.禁用驱动签名、打开测试模式和复制 Boot 菜单

最后我们需要禁用驱动签名、打开系统测试模式和复制 Boot 菜单并重启。由于在开发的过程中,我们测试自己写好的驱动是没有进行签名的,无法在正常的系统上运行,所以我们需要禁用驱动签名和打开系统的测试模式,复制 Boot 菜单是为了在每次系统启动的时候我们可以选择进入正常的系统或者进入我们配置好的调试系统,只需要在虚拟机上运行以下批处理命令即可:

bcdedit /set nointegritychecks on
bcdedit /set testsigning on
bcdedit /copy {current} /d "win10 x64 debug for windbg"
shutdown -s -t 1000

不禁用驱动签名在加载驱动的时候就会出现如下情况:

然后在系统重启的时候,我们选择我们复制出来的引导项,也就是第二个,然后再次重启进入系统的时候,我们点击创建的 windbg 快捷方式进行连接。

4.设置符号表和调试信息输出

在 windbg 已经成功连接被调试机的时候,可以打开主菜单 File,然后选择 Symbol File Path 来设置符号表的位置,设置如下:

srv*D:\symbs*http://msdl.microsoft.com/download/symbols;D:\work\myp
roject\build\output\x64\Debug 

这个设置的前半部分从微软的网址下载符号表,并保存到 D:\symbs 目录下。而后半部分是工程的调试版本的编译输出目录,可以按照自己的真实路径来调整。

一般来说,在调试的时候,只要你按下了 Ctrl 加 Break 键中断了被调试机,然后输入如下命令:

.reload

回车后,符号表就会开始加载或者下载。符号表无法下载的时候,必须把 Symbal path 设置中关于微软的部分全部删除。否则每次调试的时候都会尝试从微软下载符号表,每次都会卡很长时间。当然我们尽量要下载符号表,在调试内核的时候会给我们很大的帮助,比如没有下载符号表则无法使用 dt 命令来查询 EPROCESS 这个内核结构体。

此时,在我们调试的时候,可能会发现,当我们在驱动程序中编写了打印调试信息的语句,但是 windbg 却不显示调试信息,原因是因为我们没有设置合适的调试信息输出等级,我们只要在 windbg 命令行中输入以下命令运行即可:

//不区分大小写,用于打开Windows驱动或者内核调试筛选器
ed kd_default_mask 0xffffffff 

5.设置 windbg 的工作窗口

我们可以根据自己的习惯设置 windbg 的工作窗口,在菜单栏中 View 中开启相应的窗口并调整位置,并在 File 中保存工作区,如下:

6.做好快照

最后,我们必须要对设置好的调试环境做一个快照,因为 windows 每次启动非常耗时。但更要命的是每次启动之后,Windows 的内存布局是不同的。通过快照,一方面我们每次可以直接恢复快照进行迅速连接,另一方面当我们的调试系统出现环境异常或者崩溃的时候,我们也可以恢复最初始的环境,毕竟在调试内核的过程中,蓝屏是家常便饭。

不过值得一提的是,这里有两个地方需要注意:

  • 在我们每次进行快照之前,我们先中断调试系统,然后再进行快照,下次恢复快照的时候,使用 windbg 快捷方式就可以直接连接上(否则大概率会出现无法直接连上的情况,我估计是因为当我们中断调试系统的时候,会对系统环境进行保存,而若在没有中断系统的情况下进行保存,下次再恢复快照的时候无法直接连上,需要每次点 windbg 的 “Break”(中断) 命令才行)。
  • 每当我们的 windbg 连接不上时,而被调试的系统也在正常运行着,这时候点一下 WinDbg 的“Break”(中断)命令一般就能够连接上了。

标签:快照,windbg,双击,设置,符号表,我们,调试
From: https://www.cnblogs.com/lostin9772/p/18355560

相关文章

  • JSP广州中小学学校信息管理系统_j3o8r(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:用户,区域分类,招生信息,机构活动,成绩排名,获奖排名,社团排名,特色排名开题报告内容一、项目背景与意义随着教育信息化步伐的加快,广州作为教育强市,对......
  • (二) 树莓派CM4调试
    1.参考资料资料汇总页面https://shumeipai.nxez.com/raspberry-pi-datasheets《bcm2711-peripherals.pdf》,下载地址https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf《cm4io-datasheet.pdf》,下载地址https://datasheets.raspberrypi.com/cm......
  • Springboot计算机毕业设计古典文学阅读网站(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,作品信息,作品类型,心得分享开题报告内容一、研究背景与意义1.研究背景随着互联网技术的迅猛发展,人们获取信息的方式发生了巨大变化。传统的纸质书籍逐......
  • 当 Spring 循环依赖碰上 Aysnc,调试过程中出现 BeanCurrentlyInCreationException,有点
    开心一刻前两天有个女生加我,我同意了第一天,她和我聊文学,聊理想,聊篮球,聊小猫小狗第二天,她和我说要看我腹肌吓我一跳,我反手就删除拉黑,我特喵一肚子的肥肉,哪来的腹肌!循环依赖关于Spring的循环依赖,我已经写了4篇Spring的循环依赖,源码详细分析→真的非要三级缓存吗再......
  • 编程技巧 --- 远程调试
    引言最近在做的项目上做了一些性能优化的工作,用到了VisualStudio远程调试,所以本篇文章整理一下远程调试技巧。首先,了解一下VisualStudio远程调试是什么?VisualStudio的远程调试功能允许在本地调试远程计算机上运行的应用程序。用远程调试,可以在本地计算机上设置断点、查......
  • 基于Java的考试信息报名系统 SpringBoot考试报名管理系统 Vue前后端分离【Java毕业设
    ⛄博主介绍:⚡全栈开发工程师,精通Web前后端技术、数据库、架构设计。专注于Java技术领域和小程序领域的开发,毕业设计、课程设计项目中主要包括定制化开发、源代码、代码讲解、文档报告辅导、安装调试等。✅文末获取联系✅目录1项目介绍 2技术选型 3系统总体设计 4......
  • 计算机毕业设计 校园失物招领网站 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解
    ......
  • 植入式可编程微型电流刺激器解决方案之硬件设计调试总结
    前记 微电流刺激仪,是指利用低强度特定波形电流刺激大脑、下丘脑、边缘网状结构,调节大脑兴奋性,治疗失眠、焦虑或缓解症状。随着近些年新的医疗方式和科学研究的不断深入。这类技术在生物学以及医疗健康领域变得愈加重要了。笔者团队有幸参与了国内一家科研项目,并把该设备做成实际......
  • 飞腾D2000网卡经裕太PHY后出光网调试指导
    1、背景介绍飞腾D2000网卡经裕太8521后转光模块输出,示意框图如下2、硬件配置裕太8521模式需要配置为RGMII转UTP/Fiber,寄存器中0xa001说明如下,寄存器最后三位读出来是0103、软件配置1)设备树配置linux下对D2000网卡的设备树描述如下,注意要去除网卡节点下面的mdio相关......
  • JSP过程管理系统ct79v(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能:学生,导师,公告,毕设题目,毕设选题,毕设任务书,开题报告,中期检查,毕业论文,论文成绩,答辩通知,答辩成绩技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP......