VirtualBox+Windbg 进行双机调试的方法

2023-10-27

  以前见他们调试驱动程序之类的都是使用的VMWare, 我没怎么用这软件, 感觉这软件有点臃肿, 后台服务挂得太多了, 感觉不爽, 于是就没搞它.
加上电脑上很早就装有Oracle的Virtual Box, 于是就看了下, 其实Virtual Box也有支持串口设备, 按理说也可以用Windbg进行连接的. 一直觉得Virtual Box挺好用的.
既然写了这篇博客, 那就证明我确实已经成功地进行调试了.
  下面说下步骤吧(已经完成的就忽略吧):
  (如果图片显示不完整, 请在右键菜单中查看该图片)

1.安装Virtual Box虚拟机
  官方网址:https://www.virtualbox.org/
  在左边找到Downloads标签, 选择合适自己平台的安装包就行了(可比VMWare小多了).
  这软件自带中文语言包, 且说是开源+免费软件, 所以不要到其它地方去找什么破解, 绿色之类, 搞得不好反倒弄一身的XX.

2.安装虚拟机操作系统
  对于VBox安装虚拟机操作系统, 百度一下, 太多了...百度吧.
  我安装的操作系统是XP_SP3, 新手嘛, 还是从"低级"的东西慢慢学起.

3.对虚拟机中的操作系统进行额外的设置
  常规的设置,比如内存大小, 显存大小等, 请酌情分配就行.
  3.1 对串口的支持设置(需要在关机的条件下设置)

  注意管道的命名规则, 否则会创建失败.



  3.2 在虚拟机和实机之间共享文件
    第一种办法(目录共享):





  第二种办法(简单方便, 但貌似会使电脑出现拖放问题):




  3.3 修改操作系统配置文件以启动调试模式
  在虚拟机中, 找到 C:\Windows\boot.ini(隐藏,只读),在最后加上一行:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200
/debugport=com1就是上面创建的管道的命名后面的部分:\\.\pipe\com1,/baudrate=115200表示设置波特率(这个可以大点,速度快些,但不能随便乱设置)
/debug 表示启用调试
  修改后大概是这样的:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com1 /baudrate=115200

  重启虚拟机,  选择第2项启动菜单进入调试模式:



4. 配置Windbg进行调试
  4.1 下载符号文件(如果没有)
    1) 到http://msdn.microsoft.com搜索下载
    2)到http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx
    我下载的是Windows XP with Service Pack 3 x86 checked symbols, all languages (File size: 202 MB)
    自己按需下载吧.
  4.2 新建一批处理脚本文件(双机调试.bat)
  内容如下:

@echo off
::调试Windbg的路径(有空格请加上双引号)
set Windbg="I:\Dynamic Debug\WinDbg v6.11.0001.404 X86\windbg_EN.exe"
::设置命令行参数
::其中com:port=\\.\pipe\com1是上面创建的管道. 波特率设置要一致
::-y H:\Cache\symbols表示调试符号文件的路径
set Param=-b -k com:port=\\.\pipe\com1,baud=115200,pipe -y H:\Cache\symbols
::打开调试
start "" %Windbg% %Param%
goto :eof

附图:


保存后, 直接双击打开该bat脚本文件即可打开WinDbg并调试虚拟机(先要打开虚拟机并进入调试模式)


  一开始虚拟机可能处理未响应状态(被调试), 按照上面的说明, 在下面的命令行中执行命令g即可继续.
之后通过共享文件的方式, 加载相应的驱动/程序, 通过手动下断点的方式进入调试:
  在驱动中手动加入断点:
  #if DBG
    __asm int 3
  #endif

即可使虚拟机挂起到调试状态了.

女孩不哭(QQ:191035066)@2013-01-02 10:34:47 http://www.cnblogs.com/nbsofer


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

VirtualBox+Windbg 进行双机调试的方法 的相关文章

随机推荐

  • 【限时免费】20天拿下华为OD笔试之【单调栈】2023Q1A-删除重复数字后的最大数字【欧弟算法】全网注释最详细分类最全的华为OD真题题解

    单调栈 2023Q1A 删除重复数字后的最大数字 题目描述与示例 题目 一个长整型数字 消除重复的数字后 得到最大的一个数字 如 12341 消除重复的 1 可得到 1234 或 2341 取最大值 2341 如 42234 消除 4 得到
  • 基于STM32G030F6P6的485温湿度传感器开发(卡轨版)-硬件设计部分

    基于STM32G030F6P6的485温湿度传感器开发 卡轨版 硬件设计部分 一 引言 现实生活中 经常会看到各种温湿度传感器设备 今天给大家设计一款485温湿度传感器设备 其中包括对应的硬件设计 单片机软件开发 配套的上位机开发 看一下淘
  • 【Docker】Docker镜像构建、Dockerfile详解、镜像优化

    一 Docker简介 01 简介 Docker 是一个开源的应用容器引擎 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 然后发布到任何流行的Linux或Windows 机器上 也可以实现虚拟化 容器是完全使用沙箱机制 相互之间不
  • 记录问题:This request has been blocked, the content must be served over HTTPS. 解决https和http混用导致的问题

    引起原因 前端项目部署在服务器上配置的域名是https的 而接口部署的服务器域名配置的是http的 HTTPS 是 HTTP over Secure Socket Layer 以安全为目标的 HTTP 通道 所以在 HTTPS 承载的页面上
  • Maven多模块项目编译失败:程序包xxx不存在

    1 用idea编译项目或者install时报错java程序包XXX不存在 我的idea是2021 3 2版本 2 解决办法 1 File gt settings gt Build Execution Deployment gt Build
  • python运行时将命令行在终端窗口输出的内容保存到文件

    Windows系统 python 文件名 py gt 日志名 log Linux系统 python 文件名 py tee 日志名 log 在运行程序代码时加入下面的示例内容 此时终端不显示输出内容 python u 文件名 py gt 日志
  • 经济学几个小点-20220719

    1 价值和使用价值 高跟鞋对需要的女人有用 对火车司机无用 使用价值 价值 一般劳动 时间等价 使用价值 对某某有用 生产者为了获得交换价值 消费者为了获得使用价值 2 供给和需求 沉没成本是一种历史成本 对当前决策而言是不可控成本 不会对
  • MSQL系列(一) Mysql实战-索引结构 二叉树/平衡二叉树/红黑树/BTree/B+Tree

    Mysql实战 索引结构 二叉树 平衡二叉树 红黑树 BTree B Tree 我们在项目中都会使用索引 所以我们要了解索引的存储结构 今天我们就着重讲解下Mysql的索引结构存储模型 并且看下 二叉树 平衡二叉树 红黑树 BTree及B
  • struc2vec算法解析

    转载自链接
  • Humata的bug记录【unsolved】

    项目场景 使用Humata 在上传PDF文档步骤出现问题 问题描述 使用UPLOAD按钮进行文件提交会报错 使用拖拽则不会出现该问题 原因分析 解决方案
  • js作用域

    一 js没有块级作用域 在c java等语言中花括号里的代码都有自己的作用域 而js花括号没有块级作用域 经常会导致一些困惑 不明所以 例如 console info color if true var color blue console
  • 数据源——信用评分的前世今生【附FICO分介绍】

    信用评分这把 看不见的标尺 如今已经逐渐渗透到我们生活的方方面面 大到贷款买房买车 小到租用一个共享充电宝 都受到它的影响 那么问题来了 这个重要的数字是从哪里冒出来的呢 这就要从信用评分的起源讲起 什么是信用评分 信用评分 Credit
  • Oracle 11g+PLSQL Developer安装及环境配置

    1 安装包 OracleXE112 Win64 zip 数据库服务管理平台 plsql 11 0 4 安装包 语言包 注册机 rar 第三方客户端 链接 https pan baidu com s 1AKTrd6Qu9 qk59N G6AV
  • cookie,token,ajax异步请求,知识点

    当get 或post 访问接口时 如果需要传入cookie 可以直接传入jar格式的cookie 也可以传入字典格式cookie cookie cookie是存储与访问者计算机的变量 由浏览器负责存储在电脑本地 一般加密存储 但是由于存储在
  • 软件审查工具

    代码审查工具 https baijiahao baidu com s id 1693720741656939513 wfr spider for pc Eclipse Code Review 代码审查 工具介绍 https www itey
  • 快速成长的秘诀|自我成长的方法有哪些?

    快速成长总共三篇 分别是 完成自我升级 自我成长的方法 学会自我培养或培养他人 在成长第一篇 完成自我升级 发布后 有很多同学做了仔细阅读 而且其中一位同学给了我非常好的反馈补充 他的原话 我看完了 给我一个最大的感受是 您把一整套认知思维
  • Vue动画的使用

    动画的作用 提高用户的体验 帮助用户更好的理解页面中的功能 使用过渡类名实现动画 动画进入 v enter 动画进入之前的初始状态 v enter to 动画进入之后的结束状态 v enter active 动画进入的时间段 PS 第一 第
  • KVM实战入门之Libvirt

    环境说明 本实验在VMware的centos6 7 x64进行的 1 VMware配置 如果不能勾上则不能继续进行 解决办法 重新创建VMware虚拟机 到这一步 自定义 能勾上了 创建虚拟机后即可下一步 2 查看Linux环境 查看是否支
  • HC32L110国产超低功耗华大MCU芯片介绍

    华大HC32L110 系列32 位 ARM Cortex M0 微控制器 HC32L110 系列是一款旨在延长便携式测量系统的电池使用寿命的超低功耗 Low Pin Count 宽电压工作范围的 MCU 集成 12 位 1M sps 高精度
  • VirtualBox+Windbg 进行双机调试的方法

    以前见他们调试驱动程序之类的都是使用的VMWare 我没怎么用这软件 感觉这软件有点臃肿 后台服务挂得太多了 感觉不爽 于是就没搞它 加上电脑上很早就装有Oracle的Virtual Box 于是就看了下 其实Virtual Box也有支持