MAC OSX系统下利用VMware Fusion双虚拟机使用Windbg调试windows驱动
前期准备软件VMware Fusion软件UltralEdit或 Visual Studio Code或Sublime Text等文本编辑软件。Windows镜像Windbg等调试所需软件### 环境在虚拟机里面安装XP等Windows系统镜像。(安装教程不赘述)使用VMware的克隆功能 或 链接克隆功能 或 再次安装另一个Windows系统。在主虚拟机(用来调试另一台虚
前期准备
软件
- VMware Fusion软件
- UltralEdit或 Visual Studio Code或Sublime Text等文本编辑软件。
- Windows镜像
- Windbg等调试所需软件 ### 环境
- 在虚拟机里面安装XP等Windows系统镜像。(安装教程不赘述)
- 使用VMware的克隆功能 或 链接克隆功能 或 再次安装另一个Windows系统。
- 在主虚拟机(用来调试另一台虚拟机)里面安装Windbg等调试所需软件。(本教程只需Windbg)
调试虚拟机
打开虚拟机,在虚拟机资源库里面找到被调试虚拟机,右键选择
在Finder中显示
,会出现.vmx配置文件。
- 如果打开后是一整个虚拟机文件,则
右键
-显示包内容
就可以看到.vmx配置文件了。
- 如果打开后是一整个虚拟机文件,则
右键VMX文件,打开方式选择UltralEdit等文本编辑软件。
在里面找到
checkpoint.vmState = ""
这一行(也有可能不需要在此行)。在下面添加:serial0.present = "TRUE" serial0.fileType = "pipe" serial0.yieldOnMsrRead = "TRUE" serial0.startConnected = "TRUE" serial0.fileName = "/Users/tora/Documents/Serial"
其中
serial0.fileName = "/Users/tora/Documents/Serial"
后面双引号里面的路径可以自己定义,这是定义用来存放串口之间通讯的文件的位置。- 要注意代码里面的双引号必须是英文标点,不然打开虚拟机会报错。
再次在虚拟机资源库里面找到主虚拟机,做相同的操作,不过添加的代码变成:
serial1.present = "TRUE" serial1.yieldOnMsrRead = "TRUE" serial1.fileType = "pipe" serial1.fileName = "/Users/tora/Documents/Serial" serial1.pipe.endPoint = "client"
其中
serial1.fileName = "/Users/tora/Documents/Serial"
双引号里面的路径必须和被调试虚拟机一样。代码里面
serial
后面的数字,0 代表是COM1 ,1代表COM2 以此类推。因此,配置Windbg时,记得选择COM2口作为调试端口。
配置系统
启动被调试虚拟机,在选择系统处移动一下光标,不要回车,然后放着不动。
- 这一步很重要,必须被调试虚拟机要占用着pipe管道。
- 这里可以看到虚拟机上方工具栏已经显示有串口了。
- 
启动主虚拟机,点击
开始
-我的电脑右键
-管理
打开计算机管理,点击左侧
系统工具
-设备管理器
,右侧双击端口(COM和LPT)
,可以看到连接到虚拟机的串口号。演示里面是COM2。
打开自行安装的Windbg,依次点击
File
-Kernel Debug
,在打开的COM选项卡里面,Baud Rate
填写115200
,在Port
里面填写COM2
,然后确定
。

再次确定,会出现一个控制台,显示
Waiting to reconnect...
选择被调试虚拟机,在上面的标签栏-虚拟机里面选择
重启虚拟机
。
在被调试虚拟机里面选择系统时,选择带有
[启用调试程序]
标签的系统。可以看到,主虚拟机里面Windbg的控制台刷新出被调试虚拟机的内核信息。
这种方式每次调试都要重启目标机,没有在windows上随时都可以用windbg连接目标机那么方便。
参考
更多推荐
所有评论(0)