Skip to content

Latest commit

 

History

History
65 lines (40 loc) · 4.52 KB

双机联调.md

File metadata and controls

65 lines (40 loc) · 4.52 KB

看这个就能连接guest win10:
https://blog.csdn.net/qq_21000273/article/details/52027708

  • 关于命名管道:命名管道是一个有名字的、实现单向或双向通信的通信管道,可以是进程间的通信,也可以是跨越网络的不同 主机间不同进程间的通信。管道的名称由两部分组成——计算机名和管道名。标准格式为 \[host_name]\pipe[pipe_name](方括号内为参数)。 对于同一主机,允许有多个同一命名管道的实例并且可以由不同的进程打开,但是不同的管道都有属于自己的管道缓冲区和自己的通讯环境而互不影响, 并且命名管道可以支持多个客户端连接一个服务器端。对于客户端来说,命名管道可以是 \[host_name]\pipe[pipe_name] 形式, 也可以是 \.\pipe[pipe_name] 形式,其中的"."表示本机。而服务器端由于只能指定本机作为主机名,故只能使用 \.\pipe[pipe_name] 的形式。 上文例子中的 eric 即为一个 [pipe_name]。另外,在同一主机上,管道名称是唯一的。一个命名管道一旦被创建就不允许相同名称的管道再被创建。

https://www.cnblogs.com/mvperic/archive/2010/07/25/1784790.html

  • 调试命令相关:

bp 命令是在某个地址下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。

对于后者,WinDBG 会自动找到MyApp!SomeFunction 对应的地址并设置断点。 但是使用bp的问题在于:

1)当代码修改之后,函数地址改变,该断点仍然保持在相同位置,不一定继续有效;

2)WinDBG 不会把bp断点保存工作空间中

bu 命令是针对某个符号下断点。 比如 bu MyApp!SomeFunction 。 在代码被修改之后, 该断点可以随着函数地址改变而自动更新到最新位置。 而且bu 断点会保存在WinDbg工作空间中, 下次启动 Windbg 的时候该断点会自动设置上去。另外,在模块没有被加载的时候,bp 断点会失败(因为函数地址不存在),而bu 断点则可以成功。 新版的WinDBG中 bp失败后会自动被转成bu

bm 命令也是针对符号下断点。 但是它支持匹配表达式。 很多时候你下好几个断点。 比如,把MyClass 所有的成员函数都下断点:bu MyApp!MyClass::* , 或者把所有以CreateWindow开头的函数都下断点:bu user32!CreateWindow*

bl(breakpoint list)命令列出已存在的断点的信息

对于每个断点,该命令显示以下信息:

断点ID。该ID是一个可以在其他命令中引用这个断点的十进制数字。 断点状态。它可以是e (启用) 或d (禁用)。 如果出现字母"u",说明断点是未定的。即,该断点中的符号引用还没有和任何当前已加载的模块匹配。 断点位置的虚拟地址或符号表达式。如果启用了源码行号加载,bl 命令显示文件和行号信息而不是地址偏移。如果该断点未定,则它的地址会被省略并出现在列表末尾。 (仅数据断点) 数据断点的类型和大小信息会显示出来。类型可以是e (执行)、 r (读/写)、w (写)或 i (输入/输出)。类型后面是以字节为单位的大小。关于这种类型断点的更多信息,查看ba (Break on Access)。 断点被激活前需要忽略的剩余次数,后面是在圆括号中的初始次数。(这种断点的更多信息,查看bp, bu, bm (Set Breakpoint)中对Passes参数的说明。) 关联的进程和线程。如果线程是用三个星号("***")表示的,说明这不是一个指定线程的断点。 符合断点地址的模块和函数以及偏移。如果是未定断点,这里会用括号括起来的断点地址替代。如果断点设置在合法地址,但是没有符号信息,这个域为空。 该断点触发时要自动执行的命令。这个命令以引号括起来。 bc(breakpoint clear) 命令在系统中移除先前设置的断点。

使用星号(*)来指定所有断点

最后介绍下ba断点

ba 命令就是针对数据下断点的命令, 该断点在指定内存被访问时触发。 命令格式为

ba Access Size [地址]

Access 是访问的方式, 比如 e (执行), r (读/写), w (写)

Size 是监控访问的位置的大小,以字节为单位。 值为 1、2或4,还可以是 8(64位机)。

比如要对内存0x0483DFE进行写操作的时候下断点,可以用命令 ba w4 0x0483DFE

在Access 和Size 之间不能加入空格

0:000> ba r4 00a76748

be 打开断点

bd 关闭断点

以上这段 参考https://www.cnblogs.com/guanlaiy/archive/2012/12/21/2827391.html