【发布时间】:2017-02-06 19:30:09
【问题描述】:
我用 C++ 编写了两个程序,A 和 B。在 A 程序中,我用参数调用 B(基于控制台的程序)。
我想要的是当我调用 B 时想要处于调试模式(知道我运行程序 A)。我如何在 Visual Studio 2010 中设置它?
谢谢
【问题讨论】:
我用 C++ 编写了两个程序,A 和 B。在 A 程序中,我用参数调用 B(基于控制台的程序)。
我想要的是当我调用 B 时想要处于调试模式(知道我运行程序 A)。我如何在 Visual Studio 2010 中设置它?
谢谢
【问题讨论】:
当我遇到同样的问题时,我刚刚添加了Sleep(10000); (或类似地)在程序 B 开始时,然后手动附加调试器。您也可以根据环境变量/命令行参数/...
我知道这是一个 hack - 但它有点工作;并且还希望有更好的解决方案。
【讨论】:
在主调用::DebugBreak() 开始的程序B 中,这将允许您将调试器附加到您的第二个进程。见:https://msdn.microsoft.com/en-us/library/windows/desktop/ms679297(v=vs.85).aspx
【讨论】:
DebugBreak() 在已附加调试器时进入调试器。这直接来自documentation:“如果进程没有被调试,该函数使用标准异常处理程序的搜索逻辑。在大多数情况下,这会导致调用进程由于未处理的断点异常而终止。”