windbg 双机调试环境搭建(虚拟机)

news2024/10/6 22:23:55

windbg 双机调试环境搭建(虚拟机)

  • WinDbg 下载安装
    • 下载安装
  • 虚拟机下载安装
    • 下载安装虚拟机软件 VMware
    • 下载 Windows 镜像,新建虚拟机
  • WinDbg 建立连接
  • 使用演示
  • 参考资料


WinDbg 是一个调试器,可用于分析故障转储、调试实时用户模式和内核模式代码,以及检查 CPU 寄存器和内存。

WinDbg 下载安装

windbg 目前最常用的版本分为 Windbg 和 Windbg Preview 两种版本,前者是在安装 WDK 后自动安装的版本,后者需要自己从官方网站下载安装。

Windbg 属于传统应用界面(版本虽然又更新,但是界面显示效果依然老旧)
在这里插入图片描述

Windbg Preview 则采用新版本的 UI 风格显示。
在这里插入图片描述

这两个版本的功能一致、使用方式也一样。具体使用哪种根据大家自己的需求都可以,这两个版本基本上可以说是一样的。

下载安装

WinDbg 的是和 Windows WDK 集成到一起的。所以安装 Windows WDK 后会自动安装 WinDbg 旧版本样式的。安装 Windows WDK 可以参考这篇文章(Windows 驱动开发环境搭建)

至于 WinDbg Preview (现在版本更新,预览版已经更名为正式版本 WinDbg)版本则需要去 Windows 官方网站下载,下载地址:安装 WinDbg

下载链接:WinDbg下载链接

下载完成后,双击即可进入 Windows 应用商店安装界面,选择安装即可完成安装。

虚拟机下载安装

下载安装虚拟机软件 VMware

Windows 下的虚拟机软件有很多,比如 VMware、VirtualBox 等等。我个人习惯用 VMware,所以这里我选择下载安装的是 VMware。

和一般的 Windows 应用程序安装步骤一样,安装完成后打开 VMware,首次打开界面是空的 (因为还没有新建虚拟机)。如下图:

在这里插入图片描述

下载 Windows 镜像,新建虚拟机

安装好 VMware 软件后,我们需要去下载调试所需的 OS 镜像(Windows 镜像),我这里开发调试的是 Windows 10 版本,所以去官网下载对应的系统镜像:

下载 Windows 10

在这里插入图片描述

下载完成系统镜像后,我们打开 VMware ,选择新建虚拟机,导入系统镜像,然后根据提示进入新建虚拟机就可以完成了。下面是我新建好的虚拟机页面:

在这里插入图片描述

WinDbg 建立连接

正常设置目标机器的 Dbg server 步骤参考这个链接:自动设置 KDNET 网络内核调试,基本操作是通过 kd.exe 设置机器名称及 key。然后在宿主机上使用 WinDbg 填入对应的 IP 和 key 进行连接即可。

但是我们在构建开发环境的时候,已经在本机上安装好了 VS2019,所以这里就可以利用 VS2019 的功能来新建虚拟机链接。

在 VS2019 菜单栏中点击“扩展”——“Driver”——“Test”——“Configure Devices”。
在这里插入图片描述
选择添加新的机器。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
如果这里配置出现失败很大可能是网络原因,你需要确定你输入的目标机器的 IP 是正确的,并且是可以被本机正常访问的。在目标机器上使用 powershell 查看一下:

ipconfig
ping <本机IP>

在这里插入图片描述
同样,在本机上也测试一下,确保本机也可以正常访问虚拟机 IP

在这里插入图片描述

在这里,VS2019 会帮助我们进行目标机器的服务配置,配置完成后会自动重启目标机器,然后我们就可以正常使用了。在完成配置后会出现目标机器的 KEY(这个很重要)。
在这里插入图片描述

通过 VS2019 能帮助我们很方便完成对目标机器的 Windbg 的配置,我们拿到对应的 KEY 后就可以在 Windbg 中填入这些信息来使用 Windbg。

在 Windbg 的 “文件” 选项中选择 “Attach to kernel”,然后将刚刚 VS2019 中拿到的信息填入就可以建立 WinDbg 双机调试链接。

在这里插入图片描述
在这里插入图片描述

使用演示

通过 Windbg 建立连接后,我们可以使用 break 将当前内核进程停下来,这样就可以输入 dbg 命令来进行内核调试:

在这里插入图片描述
在这里插入图片描述

参考资料

安装 Windows 调试器

什么是 WinDbg

Windows 调试入门

用于调试的 Windows 符号包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/762917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

提高驾驶安全性 | 基于ACM32 MCU的胎压监测仪方案

概述 作为车辆的基础部件&#xff0c;轮胎是影响行车安全不可忽视的因素之一。据统计&#xff0c;中国每年由胎压问题引起轮胎爆炸的交通事故约占 30%&#xff0c;其中 50%的高速交通事故是由车辆胎压异常引起。因此&#xff0c;准确实时地监测车辆在行驶过程中的轮胎压监测系…

HarmonyOS/OpenHarmony应用开发-程序包多HAP机制(下)

三、多HAP的开发调试与发布部署流程 &#xff08;一&#xff09;多HAP的开发调试与发布部署流程如下图所示。 图1 多HAP的开发调试与发布部署流程 &#xff08;二&#xff09;开发 开发者通过DevEco Studio工具按照业务的需要创建多个Module&#xff0c;在相应的Module中完成…

【Unity 实用插件篇】 | 使用Fungus插件制作一个对话系统,简单好学易上手

前言 【Unity 实用插件篇】| 使用Fungus插件制作一个对话系统&#xff0c;简单好学易上手一、Fungus介绍二、Fumgus导入三、Fungus功能使用3.1 基础对话效果实现3.2 搭建简单场景测试3.3 触碰 对话3.4 条件对话3.4 分支 对话3.5 改变对话UI视图 四、常用功能菜单介绍4.1 Flowch…

【前端】自制密码展示隐藏按钮

效果 一、前期准备 使用的图片是iconfront上拿的svg代码环境是Vue2 Element 二、创建组件 showPasswordAndclose <template><span class"show-password-container"><span v-if"chooseType CLOSE" click"changeType"><…

一文读懂Nacos原理及实践

文章目录 0. 前言0.nacos 介绍什么是 Nacos&#xff1f;Nacos 地图 1. 原理解析1.1 服务注册与发现流程一、服务注册流程二、服务发现流程三、注册中心高可用性机制 1.2. 原理解析一、服务注册与发现的概念二、服务注册与发现的流程2. 服务发现流程3. 服务负载均衡流程 三、服务…

javascript 将json数据导出excel

<el-button type"primary" plain v-on:click"jsonToExcel();">导出</el-button>jsonToExcel() {const data this.AlarmData;let head "城市,站点,时间,A相电流(A),B相电流(A),C相电流(A),SO2压力(MPa),CO压力(MPa),NOX压力(MPa),A相电压…

Activity引擎(初次学习与总结梳理全记录,包括易混淆知识点分析,常用报错解决方案等)

最近工作需要使用Acticity框架处理审批业务&#xff0c;简单了解后能虽能很快的上手&#xff0c;但是对于Activity的整体认识并不够&#xff0c;特此花费很多精力全面的学习并记录。包含对很多的概念的第一次理解过程&#xff1b;对知识点的混淆地方的梳理&#xff1b;对实践过…

mysql索引优化和锁

mysql索引优化和锁 IO操作与索引 IO操作上数据库性能的瓶颈之一&#xff0c;每次进行IO操作都需要消耗时间和资源。 核心:尽量减少 IO 操作的次数 读取次数少且读取量少是优化IO操作的核心目标。采用分块读取和局部性原理。 分块读取&#xff1a;将磁盘上的数据划分为若干…

黑马程序员编著过哪些教材?

黑马程序员是一家知名的IT培训机构&#xff0c;他们发布了许多教材和课程。 《Python入门教程》&#xff1a;介绍Python编程语言的基础知识和常用技巧。 《Java从入门到精通》&#xff1a;全面介绍Java编程语言的基础知识和高级特性。 《Web前端开发教程》&#xff1a;涵盖HT…

JDK压缩包安装,tomcat压缩包安装

1.解压JDK后进入我的电脑高级设置 2.新建系统变量&#xff08;变量名为JAVA_HOME&#xff0c;值为jdk文件夹的绝对地址&#xff09; 3.再次新建系统变量&#xff08;变量名为CLASSPATH&#xff0c;值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar&#xff09; 4.进入系…

教你如何快速准确地掌握AI最新技术

文章整理自&#xff1a;https://twitter.com/jbhuang0604/status/1426039195542360070?s21 人工智能领域如何follow最新技术&#xff1f;这应该是咱们这个行业非常关心的问题之一吧。 当你刚开始进行研究时&#xff0c;会发现每年都有成千上万的论文&#xff0c;如何在这些海…

代码随想录二刷day55 | 动态规划之子序列 392.判断子序列 115.不同的子序列

day55 392.判断子序列1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 115.不同的子序列1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历…

python+allure+jenkins

目录 前言 在 python 中使用 allure 1. 安装 pytest 2. 安装 pytest-allure-adaptor 3. 使用 pytest 执行测试用例并生成 allure 中间报告&#xff08;此步骤可以省略&#xff0c;因为在 jenkins job 中会配置执行类似的命令&#xff09; 4. Jenkins 中安装Allure Jenkin…

测试老鸟整理,Jmeter常用线程组+场景实例,一篇速通测试...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Jmeter中通过线程…

FITC标记牛血清白蛋白(FITC-BSA)溶解性

FITC-BSA是一种常用的荧光探针&#xff0c;用于生物化学和细胞生物学研究。FITC-BSA具有溶解性&#xff0c;可以在溶液中均匀分布。 溶解性1&#xff1a; FITC标记的牛血清白蛋白&#xff08;FITC-BSA&#xff09;在适当的条件下具有良好的溶解性。FITC-BSA通常以固体形式供应…

概率论的学习和整理18:为什么 P(至少成功1次) = Σ P(几何分布) ,总结几何分布和连续失败概率的关系,二项分布和累计成功k次的关系

目录 1 先说结论&#xff1a; 2 Σ几何分布的P(xn) P(n次试验至少成功1次) 2.1 几何分布的概率 2.2 这个是可以证明的&#xff0c;下面是推导过程 2.3 怎么理解呢&#xff1f; 3 另外&#xff0c;P(累计成功k次) ΣP(成功k次的二项分布) 3.1 成功k次的概率 和 累计成…

C# NPOI读取Excel中文乱码

Win11, 程序中需要从Excel表格读取中文内容&#xff0c;实测发现有中文乱码问题&#xff1a; class name:??Vege 奇怪的问号&#xff0c;原文是“蔬菜Vege”。 网上找了一圈&#xff0c;没找到NPOI中文乱码的解决方案&#xff0c;普遍都是比较顺利没遇到中文乱码问题。 那…

DP4057替代TP4057 500mA双灯指示防反接锂电充电管理IC

DP4057 是一款完整的单节锂离子电池充电器&#xff0c;带电池正负极反接保护&#xff0c;采用恒定电流/恒定电压线性控制。其 SOT26封装与较少的外部元件数目使得 DP4057 成为便携式应用的理想选择。DP4057可以适合 USB电源和适配器电源工作。由于采用了内部PMOSFET架构&#x…

ubuntu 20.04, 22.04网络配置比较

1.ubuntu 20.04网络配置&#xff0c;配置静态IP&#xff1a;切换roote用户&#xff0c;vi /etc/netplan/00-installer-config.yaml&#xff0c;修改网络配置&#xff0c;格式如下&#xff1a; network: ethernets: ens33: dhcp4: false addresses: [172.22.…

机器学习31:《推荐系统-IV》深度神经网络DNN

在《机器学习29&#xff1a;《推荐系统-II》协同过滤》一文中&#xff0c;笔者介绍了如何使用矩阵分解来学习嵌入。矩阵分解具有一些局限性&#xff1a; 基础矩阵分解只用了 UserID&#xff08;QueryID&#xff09; 和 ItemID 两个维度的信息&#xff0c;所有学到的知识都蕴含在…