繁体   English   中英

调试当前项目启动的过程

[英]Debug a process started by the current project

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

如果在创建“ B”点之后开始逐步浏览“ A”,那么如何在“ B”项目中检测断点并停止在该点?

目前,我只是在“ B”中的特定位置贴上“ DebugBreak()”,但这很烦人,因为通常会花一些时间弹出该窗口,使您可以使用VS实例调试应用程序,并且经常不会显示当前实例,因此我必须启动另一个需要花费更长时间的实例。

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

是否有任何标记要自动附加的项目的示例,例如使我可以在main的开头有一个断点(类似于在main的开头有DebugBreak)?

我在MSDN上发现了此注释:

即使子项目在同一解决方案中,调试器也不会自动附加到由已调试过程启动的子进程。 要调试子进程:

  • 启动后附加到子进程。
  • -要么-
  • 配置Windows以在调试器的新实例中自动启动子进程。

后者显然可以通过某种注册表干预来实现: 在调试器中自动启动进程

Visual Studio团队发布了一个Visual Studio扩展,该扩展允许自动将子进程附加到当前的调试器: 子进程调试Power Tool简介

在Visual Studio 2013及更高版本的库中可用。

因此,您可以使用Process.Start从项目A启动项目B,它将自动将调试器附加到第二个过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM