Win10下VS2019双机调试之调试驱动

2023-11-10

转载于 https://blog.csdn.net/m0_48995611/article/details/112211268
有现成的写的非常详细就不重复造轮子了
ps
1.注意文章字体加深部分,非常重要
2.原文bcdefit /dbgsettings打错,改成bcdedit /dbgsettings
3.文章黄色部分涉及到的 “注意:Network host name必须为虚拟机的计算机名.
不是Vmware软件左侧显示的名称,而是需要在虚拟机内部右键“我的电脑”找到“设备名称”

1.虚拟机设置

添加串行端口

虚拟机设置中,先移除打印机,然后添加串口。(打印机可能会占用COM1端口,所以先移除,当然使用其他端口也可以,但相关设置都要更改为相应的端口)

串口设置如下图:

设置系统引导

win+R,运行 窗口中输入 msconfig,回车,打开系统配置。
选择 引导 - 高级选项,设置如下图:

设置测试模式

在本地WDK的安装目录下找到 Remote 文件夹,复制相应的 WDK Test Target Setup.msi 文件到虚拟机中打开。

管理员权限运行cmd,输入 bcdedit /set testsigning onbcdedit /Debug on ,开启测试模式。
输入 bcdefit /dbgsettings 查看设置情况如下。

2.VS2019设置

添加新设备

打开 扩展 - Diver - Test - Configure Devices…,选择 Add New Device

输入名称,然后下一步。注意:Network host name必须为虚拟机的计算机名。

Kernel Mode中设置串口通信等信息,如下图:
注意:Pipe name要与虚拟机串口设置的管道名称一致。

下一步, Driver test configurationStatus 显示为 Configured for driver testing 说明一切正常,完成。

3.双机调试

VS2019中,选择 调试 - 附加到进程,连接类型选择 Windows Kernel Mode Debugger,连接目标为之前新建的Device,附加。
注意:附加前要开启虚拟机

Debug窗口会显示以下字样,表示已打开管道并等待重连。(注意是 Opened \.\pipe\com_1)

接着重新启动虚拟机,等待虚拟机进入桌面。Debug窗口显示如下:
注意:1.这里可能会花较长时间,并不是因为卡死了。
注意:2.重启虚拟机的时候记得禁用驱动程序强制签名。(或者使用testsigning)

进入桌面后,虚拟机可以正常操作。在VS2019中按下 全部中断

等待VS停下来,并出现以下画面,再点击 继续(先暂停再继续,否则可能断不下来)

此时就可以设置断点了。

注意:如果VS很长时间都没有响应,可以用任务管理器结束VS,然后重新打开再附加到进程。

等待虚拟机可以正常操作后,将主机生成的驱动程序拷贝到虚拟机中,用相关程序加载,就可以成功命中断点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Win10下VS2019双机调试之调试驱动 的相关文章

  • Linux驱动开发(十八)---网络(网卡)驱动学习

    前文回顾 Linux驱动开发 xff08 一 xff09 环境搭建与hello world Linux驱动开发 xff08 二 xff09 驱动与设备的分离设计 Linux驱动开发 xff08 三 xff09 设备树 Linux驱动开发 x
  • Linux设备驱动程序学习(19)-USB 驱动程序(四)

    编写 USB 驱动程序 xff08 本部分的一些示例源码来自drivers usb usb skeleton c xff0c 它是Linux内核为我们提供的最基础的USB驱动程序 xff0c USB骨架程序 xff09 驱动程序把驱动对象注
  • AVstream驱动学习

    Step 1 Learn about Windows architecture and drivers AVStream AVStream is a Microsoft provided multimedia class driver th
  • Linux驱动——设备树

    在对总线设备驱动进行详细说明时可以看出 虽然总线设备驱动可以实现驱动和设备分离 但是总线设备驱动引发另外的一个问题就是在相同的芯片不同的开发板上 当外设资源不同时需要在不同的设备文件中去定义引脚 这样就导致开发板中保留大量设备文件 为了解决
  • 【电脑蓝屏】—— inaccessible boot device

    文章目录 一 问题描述 二 问题出现场景及原因分析 1 重装系统后出现该蓝屏情况 三 问题解决方法 附件 一 问题描述 蓝屏提示 inaccessible boot device 二 问题出现场景及原因分析 1 重装系统后出现该蓝屏情况 设
  • STM32常用小驱动

    STM32常用小驱动 灯控及蜂鸣器驱动 按键消抖使用例子 蜂鸣器控制列子 数据处理校验计算类 因为疫情 最近在做红外温度检测设备 一些设备组合控制逻辑 灯控及蜂鸣器驱动 支持循环响 响多少次 响多少秒 FILE misc drv c Cre
  • 计算机操作系统的启动与加载过程

    注 uboot 嵌入式系统的bootloader 包含了BIOS的功能 相当于PC机的BIOS 引导程序
  • UEFI源码解析之UEFI_DRIVER

    Dxe Driver可以视作UEFI中的一个服务 在entry中通过protocol安装自己的服务 在Bds等位置通过locate protocol使用该服务 不必依赖与具体的硬件 当需要封装某个设备 控制器或总线的时候 对应于具体的物理实
  • 高通平台android9.0充电电量,充电指示灯以及充电图标读取分析

    第一部分 qpnq qg c static int qpnp qg probe struct platform device pdev INIT WORK chip gt udata work process udata work INIT
  • 外设驱动库开发笔记3:AD527x系列数字电位器驱动

    在一些时候我们需要使用精度更高的数字电位器来实现我们的应用 我们经常使用AD527x系列数字电位器来实现这类应用 在通常情况下 AD527x系列数字电位器完全能够满足要求 为了减少重复工作 在这里我们将分系并实现AD527x系列数字电位器的
  • 【imx6ull】视频监控项目(usb摄像头+ffmepeg)

    文章目录 前言 1 总体方案介绍 2 配置v4l2驱动与UVC驱动 3 v4l2应用编程测试摄像头 4 ffmepg移植 总结 前言 参考视频 韦东山老师手把手带你从0开始自己做一个视频监控系统 1 总体方案介绍 这篇文章写的很好 很容易理
  • QCM2290平台XBL阶段I2C使能并点亮LED

    描述 qcm2290平台上 在低压充电阶段 XBL 需要驱动LED灯芯片 提供接口供充电模块调用 显示充电指示灯功能 说明 LED控制芯片是I2C接口 我只需要提供接口即可 我这边实现了在开机时led灯闪烁 在充电相关PmicLib目录下添
  • Windbg Preview与虚拟机win10系统实现双机调试

    在驱动开发之调试内核模块中实现了用windbg与虚拟机xp系统下的双机调试 接下来说下怎么使用windbg preview与虚拟机win10系统进行双机调试 主要在三个方面进行配置 win10系统配置 虚拟机配置 windbg previe
  • 主板中的Win10/win8.1 WHQL支持是否要开启

    主板中的Win10 win8 1 WHQL支持是否要开启 在新式的电脑主板上会有Windows 10 8 1 WHQL支持开启的选项 这个选项的开启和关闭分别代表什么意义呢 这其实还要从UEFI和Legacy两种不同BIOS的说起 Lega
  • 应用程序如何调用驱动

    以write函数举例 详细调用流程 insmod驱动程序 申请设备名 设备号以及指定fops方法 这些可以在 proc devices中获得 从 proc devices中获得主设备号 并使用mknode命令来建立设备节点文件 这是通过主设
  • DRM驱动(七)之atomic_commit

    上节已经把应用的参数check了一遍 这次就可以把对应的参数配置到硬件里进行刷图操作了 int drm atomic commit struct drm atomic state state struct drm mode config c
  • “Failed to initialize NVML

    Checking nvidia driver version with error Failed to initialize NVML GPU access blocked by the operating system 解决办法 360安
  • windbg+vmware双机调试配置教程及可能出现的问题

    一 设备参数说明 1 调试机 物理机windows 10 windbg 10 0 22000 194 2 被调试机 虚拟机windows xp sp3 3 虚拟机软件 VMware workstation 16 1 2 二 虚拟机配置调试串
  • linux驱动模块的加载和卸载

    Linux 驱动有两种运行方式 第一种就是将驱动编译进 Linux 内核中 这样当 Linux 内核启动的时候就会自动运行驱动程序 第二种就是将驱动编译成模块 Linux 下模块扩展名为 ko 在Linux 内核启动以后使用 insmod
  • 字符设备驱动相关函数

    Linux内核中 a 使用cdev结构体来描述字符设备 b 通过其成员dev t来定义设备号 分为主 次设备号 以确定字符设备的唯一性 c 通过其成员file operations来定义字符设备驱动提供给VFS的接口函数 如常见的open

随机推荐

  • Flutter —— dart基础语法

    Flutter dart基础语法 1 Flutter 项目创建 2 Dart 语法 2 1 var final和const 2 2 num 2 3 string 2 4 list 和 map 2 5 和 2 6 方法 和 箭头函数 2 7
  • 刚面完的字节跳动Python软件测试用例编写(含思路)

    测试用例编写是软件测试的基本技能 也有很多人认为测试用例是软件测试的核心 软件测试中最重要的是设计和生成有效的测试用例 测试用例是测试工作的指导 是软件测试的必须遵守的准则 在这里我们不讨论以上的各种观点 但是综上所述 大家可以看出 测试用
  • QT中的connect用法总结

    第一种 首先来看看老版本的 connect 写法 比较复杂些 需要将信号和槽进行明确的指定 包括形参 看一个示例 为方便演示 先自定义一个 Button 然后定义两个重载的信号 lass MyButton public QWidget Q
  • 仓库 “https://download.docker.com/linux ubuntu Release” 没有 Release 文件。N: 无法安全地用该源进行更新,所以默认禁用该源

    解决 E 仓库 https download docker com linux ubuntu Release 没有 Release 文件 N 无法安全地用该源进行更新 所以默认禁用该源 在ubuntu16 04上安装Docker Engin
  • CentOS 7 修改系统运行级别(单用户/正常启动)

    常用的系统运行级别 3级 带网络多用户命令行界面 multi user target 5级 带网络多用户图像化界面 graphical target 正常启动的系统使用systemctl命令修改运行级别 查看当前运行级别 systemctl
  • [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

    前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索 Eastmount 关键字及截图的功能 而这篇文章主要简单介绍如何实现自动登录163邮箱 同时继续介绍Selenium Python官网Locating
  • MySQL中的事务

    1 事务介绍 本篇文章我们来介绍数据库中事务的概念以及如何使用MySQL命令行窗口来进行数据库的事务操作 事务是联合操作中我们数据库稳定运作和数据不发生不可预知错误的重要依赖 事务是指数据库中的一组逻辑操作 这个操作的特点就是在该组逻辑中
  • STM32-时钟系统

    1 时钟的定义 时钟是单片机运行的基础 时钟信号推动单片机内各个部分执行相应的指令 时钟系统就是CPU的脉搏 决定cpu速率 像人的心跳一样 只有有了心跳 人才能做其他的事情 而单片机有了时钟 才能够运行执行指令 才能够做其他的处理 点灯
  • 数学建模——BP神经网络学习笔记

    一 BP神经网络简述 人工神经元概述 归纳一下生物神经元传递信息的过程 生物神经元是一个多输入 单输出单元 常用的人工神经元模型可用下图模拟 当神经元j有多个输入xi i 1 2 m 和单个输出yj时 输入和输出的关系可表示为 其中j为阈值
  • 5.4结构型模式—————装饰模式

    装饰模式的定义与特点 装饰 Decorator 模式的定义 指在不改变现有对象结构的情况下 动态地给该对象增加一些职责 即增加其额外功能 的模式 它属于对象结构型模式 装饰 Decorator 模式的主要优点有 采用装饰模式扩展对象的功能比
  • flash读写 STM32G070 HAL库 STM32CubeMX

    flash读写 STM32G070 HAL库 STM32CubeMX 1 程序通过串口写入及读写数据 通过printf打印输出 注 这里不讲解printf 的设置 2 写入数据代码 HAL StatusTypeDef flash write
  • Mybatis————Gitee中检出项目到myeclipse

    1 在gitee中新建仓库 2 在myeclipse中 import git 输入 创建好的 仓库的地址 就是上图中的 克隆 下载 那个地方的地址 然后输入 gitee的用户名密码 点击next 找到你本地的路径 next 导入一个新的ma
  • 高斯过程回归预测Matlab简单实现

    0 说在前面的话 如果是新手入门高斯过程回归的话建议先读这篇博客才能更好理解下面的程序哟 快速入门高斯过程回归预测 1 单点预测例题 主程序 clear close all 求解程序 x 1 5 1 0 75 0 4 0 25 0 输入测量
  • moviepy音视频开发:audio_normalize调整剪辑音量大小到正常

    前往老猿Python博文目录 概述 audio normalize函数用于将一个剪辑的音量大小调整到正常 调整的思路就是将剪辑中音频帧数据的最大值取出来 当其值小于1时 表示剪辑的音量偏小 以1为参考 将所有剪辑帧数据的值都乘以1和剪辑帧数
  • 代码重构与单元测试——测试项目(二)

    二 创建测试项目 我们已经创建了充电宝计费项目 做为我们这次重构的遗留系统 为了验证我们每次重构的正确性 我们需要一个测试项目 对我们重构的代码进行测试 接下来我们来创建这个测试项目 1 在Visual Studio 2019的 解决方案资
  • 解决无法使用gpt的问题

    1 此方法是前提你得有一台服务器之后的操作 2 地区不支持 错误代码1020可以用此方法解决 脚本地址 wget N no check certificate https gitlab com rwkgyg CFwarp raw main
  • 浏览器渲染原理

    浏览器渲染原理 渲染时间点 渲染流水线 解析 HTML Parse HTML 解析 HTML Parse HTML Document Object Model 1 解析 HTML Parse HTML CSS Object Model 解析
  • Eigen 使用碎碎记_norm、normalize、normalized的区别

    本文转载自Eigen中norm normalize normalized的区别 norm normalize normalized的区别 include
  • 小程序实时监听搜索数据并将关键字高亮显示

  • Win10下VS2019双机调试之调试驱动

    转载于 https blog csdn net m0 48995611 article details 112211268 有现成的写的非常详细就不重复造轮子了 ps 1 注意文章字体加深部分 非常重要 2 原文bcdefit dbgset