wordpress 中英文网站模板,网站设计提成多少钱,wordpress文章自动更新方法,泉州模板网站建站WinDbg配置远程调试
1、为什么需要远程调试
某些特殊的场合需要远程调试#xff0c;如#xff1a;
①调试特殊的程序#xff0c;比如在调试全屏程序#xff0c;内核。
②需要别人帮助调试或者帮助别人调试。比如由于商业性质不能直接给你pdb和源代码。
③还有一类就是…WinDbg配置远程调试
1、为什么需要远程调试
某些特殊的场合需要远程调试如
①调试特殊的程序比如在调试全屏程序内核。
②需要别人帮助调试或者帮助别人调试。比如由于商业性质不能直接给你pdb和源代码。
③还有一类就是在指定的机器上复现此时dump也不好使。下一篇文章我会介绍
2、支持的远程协议有哪些
从微软的官方文档来看协议很丰富。有TCPPIPESSLCOM1394。其中最古老的要属1394至今某些台式机器仍然保留这一接口。
3、介绍tcp协议方式
在这篇文章我主要介绍tcp的方式。
注意在配置远程调试须保持两端的WinDbg版本一致。
我们先介绍下模式既是远程调试那就分为server端和client端。
举个例子我现在有个疑难杂症搞不定需要同事帮忙解决。我需要开启WinDbg的server模式那我就是server端。同事连接进来就是client端。
有两种方式启动远程调试。这两种方式各一点差异一个需要懂点WinDbg知识一个就是类似小白模式。
3.1 小白模式
在安装WinDbg的目录中找到DbgSvr程序。
比如我这里
注意看这里有很多的dbgsrv.exe你该选择哪个呢这是有讲究的。
如果你是要调试x86程序那就选择上面红框中的dbgsrv.exe。如果是调试x64程序那就需要选择amd64目录下的程序。
我曾经在这里吃过亏一调试就报如下的错误。
以管理员的权限打开cmd进入此目录如果不想每次这么麻烦就可以把此路径加入环境变量path中。下次开机就可以生效。
可以输入dbgsrv.exe /?查看dbgsrv的简单使用方式。
在输入dbgsrv.exe -t tcp:port18888要是没有任何的错误表示成功等待client端连接。 在client端打开WinDbg菜单栏中选择File打开出现如下画面
按照上面的格式输入tcp:server:192.178.2.10, port18888这里其实还加上密码参数更为安全最后点击OK
如果连接没有问题就会出现如下的画面我们在server端再起一个notepad进程。
3.2 入门模式
比如我现在正在调试notepad.exe在server端的WinDbg命令行输入.server tcp:port18888,passwordabcc
0:009 .server tcp:port18888, passwordabcc
Server started. Client can connect with any of these command lines
0: debugger -remote npipe:PipeDbgX_10353c0f6e1d413fb8a6a0f047ef46eb,Password*,Server192.168.2.10
1: debugger -remote tcp:Port18888,Server192.168.2.10在client端打开WinDbg输入tcp:server192.178.2.10,port18888, passwordabcc这里需要把ip地址换成你自己的。
成功之后在client端显示的画面
0:009 .server tcp:port18888, passwordabcc
Server started. Client can connect with any of these command lines
0: debugger -remote npipe:PipeDbgX_10353c0f6e1d413fb8a6a0f047ef46eb,Password*,Server192.168.2.10
1: debugger -remote tcp:Port18888,ServerSIH-D-697.cn.net.ntes
192.168.2.10 (tcp [::ffff:192.168.2.10]:51941) connected at Mon Aug 5 20:01:37 2024server端显示的画面
0:009 .server tcp:port18888, passwordabcc
Server started. Client can connect with any of these command lines
0: debugger -remote npipe:PipeDbgX_10353c0f6e1d413fb8a6a0f047ef46eb,Password*,Server192.168.2.10
1: debugger -remote tcp:Port18888,ServerSIH-D-697.cn.net.ntes
192.168.2.10 (tcp [::ffff:192.168.2.10]:51941) connected at Mon Aug 5 20:01:37 2024之后你在client输入的命令就会同步到server端的WinDbg。
此时可以在client端的WinDbg输入k:
0:009 k# Child-SP RetAddr Call Site
00 000000f9fb1ffd38 00007fff9e07cafe ntdll!DbgBreakPoint
01 000000f9fb1ffd40 00007fff9d127374 ntdll!DbgUiRemoteBreakin0x4e
02 000000f9fb1ffd70 00007fff9dffcc91 KERNEL32!BaseThreadInitThunk0x14
03 000000f9fb1ffda0 0000000000000000 ntdll!RtlUserThreadStart0x21