c++ - 调试当前项目启动的进程

标签 c++ visual-studio debugging

我的 Visual Studio 解决方案包含两个 C++ 控制台项目,“A”和“B”,其中“A”以编程方式启动 B(使用 CreateProcess())。

如果我在创建“B”之后开始单步执行“A”,我如何才能检测到“B”项目中的断点并将其停止?

目前我只是在“B”中的特定点粘贴“DebugBreak()”,但这很烦人,因为弹出该窗口通常需要一段时间才能让您使用 VS 实例调试应用程序,而且它通常不会显示当前实例,因此我必须启动另一个需要更长时间的实例。

我无法使用附加到进程,因为“B”启动、执行其操作然后关闭得太快。

是否有标记项目自动附加的功能,例如让我在 main 的开头有一个断点(类似于 main 开头的 DebugBreak)?

最佳答案

我在 MSDN 上找到了这条注释:

The debugger does not automatically attach to a child process that is started by a debugged process, even if the child project is in the same solution. To debug a child process:

  • Attach to the child process after it has been started.
  • -or-
  • Configure Windows to automatically start the child process in a new instance of the debugger.

后者显然可以通过一些注册表干预来实现: Automatically start a process in the debugger

关于c++ - 调试当前项目启动的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19878227/

相关文章:

c++ - Windows 上 Qt 中的无边框窗口支持 native 功能 : aero snap, DWM 调整大小和最小化

c++ - 指向不同方法的 vector

java - C++ 内存模型是否提供关于构造函数操作的保证

c++ - vc++2008 安装程序项目 msvcrt.dll

visual-studio - 如何将调试符号包含到 .vsix 包中

visual-studio - Visual Studio 的发布管理 - 管道如何与 DEV/QA/Production Branches 一起工作?

objective-c - 为什么我的 Cocoa 选择器实际上没有被调用?

c++ - 从类中返回一个字符串——奇怪的行为

ios - 如何开启Cocos2D CCLOG Debug模式?

java - 启用和禁用 eclipse 中的所有断点