-2

我在解决方案中有 2 个项目可以编译为A.exeB.exe。A 将启动 B 并通过管道连接到它。我想测试它们之间的连接,所以我想同时连接到两者。每次手动执行都非常繁琐且不方便,所以我尝试了这个

if(IsDebuggerPresent())
    DebugActiveProcess(processId);

但是似乎B 附加到 A 的调试器而不是 Visual Studio 的. 那么如何自动将 B 附加到 VS 调试器?

我手头有用于调试故障转储的windbg,所以它也可能是一个解决方案,只要它可以在没有多个用户交互的情况下完成

4

1 回答 1

0

B以编程方式附加到进程

方法一:使用VS

  1. 打开B.vcxproj而不是您的解决方案(.sln包含项目AB
  2. 放置你的断点

在此处输入图像描述

  1. 通过(或其他变体) 从您的项目A运行此 dos 命令:system()

    devenv /nosplash /run "G:\Logiciels\B\B.vcxproj" /nosplash /debugexe

  2. devenv是 VS 路径中的命令。就我而言,它在:

    C:\Program 文件 (x86)\Microsoft Visual Studio 10.0\VC

  3. 运行此命令时,将打开 B 项目并到达断点。

方法二:使用Windbg

只需调用此命令:

windbg -p ProcessID

B以图形方式附加到进程

在另一个实例中打开您的 B 项目,并像这样附加到它:

在此处输入图像描述

并选择您的 B.exe:

在此处输入图像描述

于 2020-03-05T09:22:56.063 回答