VmWare Workstation 内部集成了调试桩,并可与 Gdb 连接进行远程调试。

1. 创建虚拟机;
2. 用记事本类工具打开并编辑该虚拟机文件夹下的“*.vmx”文件

开启调试监听,32 位系统需添加如下内容
debugStub.listen.guest32 = "TRUE"

64 位系统则添加下述内容
debugStub.listen.guest64 = "TRUE"

使用硬件终端代替 INT3,需添加以下内容
debugStub.hideBreakpoints = "TRUE"

如果需要在开启虚拟机时停止运行,添加如下内容即可(注意,此时虚拟机将停止在 BIOS 的第一条指令处)
monitor.debugOnStartGuest32 = "TRUE"

在运行 BIOS 前延时 3000毫秒(其他时间依情况自行修改)
bios.bootDelay = "3000" 

保存“*.vmx ”文件并退出。如果上述内容全部添加了,运行该虚拟机则会在 BIOS 之前停止,并且监听 8832 或  8833  端口等待debug client 连接。

3. 在命令行中输入“gdb”运行 gdb 调试(假设 GDB 已经正确安装并配置)

4. 在 GDB 命令行中输入
arget remote localhost:8832
进行本机调试
arget remote IpAddr:8832
进行远程调试,其中 IpAddr 是远程主机的 IP 地址。如果是 64 位系统,请将连接端口 8832 换成 8833。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐