一、修改vmx配置文件(32位内核程序下述内容所有64改为32)
在虚拟机的vmx文件的结尾加上下属内容:
debugStub.listen.guest64 = "TRUE"
debugStub.hideBreakpoints = "TRUE"
debugStub.listen.guest64.remote = "TRUE"
monitor.debugOnStartGuest64 = "TRUE"
# 未指定下面的端口,则64位默认8864
debugStub.listen.guest64.port = "8864"
32位
debugStub.listen.guest32 = "TRUE"
debugStub.hideBreakpoints = "TRUE"
debugStub.listen.guest32.remote = "TRUE"
monitor.debugOnStartGuest32 = "TRUE"
# 未指定下面的端口,则32位默认8832
debugStub.listen.guest64.port = "8832"
debugStub.listen.guest64 = “TRUE”: 这个参数启用了虚拟机的64位客户机调试功能,允许在64位客户机操作系统中进行调试。
debugStub.hideBreakpoints = “TRUE”: 这个参数在调试过程中隐藏断点信息,使得调试过程更加隐秘。这在某些情况下可以用于防止恶意用户利用调试功能来破坏虚拟机的安全性。
debugStub.listen.guest64.remote = “TRUE”: 这个参数指示虚拟机启用远程调试功能,允许使用远程调试器连接到虚拟机并进行调试操作。
monitor.debugOnStartGuest64 = “TRUE”: 这个参数指示虚拟机启动时自动开始进行64位客户机调试。这样,虚拟机将在客户机操作系统启动时等待调试器的连接,并允许进行调试操作。
二、gdb连接
在gdb中输入命令:
如果vmware在物理机上,且使用win的cmd来执行dgb,直接启动dgb,使用命令:
target remote localhost:8864
如果在wsl中
先查看物理机ip:
ip route | grep default | awk '{print $3}'
再链接
target remote ip:8864