windbg-双机调试 远程调试

使用VirtualKD-Redux  配合windbg进行虚拟机双机调试非常方便,

在实体机端选择custom按钮,自定义命令使用如下命令:

"D:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" -c "!sym noisy;.reload" -y  SRV*F:\virtual_Symbol\Win7_x86_Driver\*http://msdl.microsoft.com/download/symbols -b -k com:pipe,resets=0,reconnect,port=$(pipename)

 

.reboot 可以重新启动虚拟机系统,但是又一些操作没有生效,比如修改串口号后,注册表内容进行了变化,但是使用reboot重启后,注册表内容又恢复了,串口号没有修改过来

 

远程调试:

比如本机有windbg,已经附加了某个程序,可以使用如下命令将当前windbg作为服务端,让客户端来连接,两个人一起来调试这个程序。

在当前windbg命令输入界面输入如下命令

0:007> .server tcp:port=2000
Server started. Client can connect with any of these command lines
0: <debugger> -remote tcp:Port=2000,Server=DESKTOP-F3UII5R

然后打开客户端windbg,选择菜单

 

 输入

 

 

然后点击OK,也可以在Server后面加上目标IP。连接成功如下:

 

 

这样在客户端和在服务端输入的内容对方都可以看见,两个人可以一起调试一个程序,此时程序使用的PDB需要使用服务端磁盘上的PDB。

 

还可以使用DbgSrv.exe,在windbg.exe的目录下,在cmd下运行如下命令

DbgSrv.exe -t tcp:port=2002

 

 然后就可以在客户端连接了,

 

 在菜单中点击Connect to Remote Stub...功能,输入 tcp:port=2002,server=127.0.0.1  注意:下面截图中 2002后面是'.',应该改成','逗号

 

 点击OK后,就可以附加程序了,此时附加的是服务端的程序,

 

 此时使用的PDB文件应该是客户端的PDB文件,这种适合远程调试代码,代码运行在客户环境或者专用的环境,然后代码及PDB在本机上,这样很方便,只要不关机,或者不关闭服务端的dbgsrv程序,那么需要的时候就可以附加到服务端进程中。

posted @ 2022-10-14 16:40  psj00  阅读(835)  评论(0)    收藏  举报