强制 C++ 程序在 Visual Studio 调试器中暂停

Force C++ program to pause in Visual Studio debugger

我正在 Windows 下调试用 MSVC 编译的 C++ 程序。 我想调查与多线程相关的问题。因此,我将 ASSERT 放入我的代码中,当程序到达 ASSERT 时,它显示 window 关于 ASSERT(标准 [Abort]、[Retry]、[Ignore] window)并建议在调试器中暂停程序。我按下 [重试] 按钮,程序暂停。但是当我按下按钮时,其他线程继续执行。 那么问题来了,如何在程序到达某个点时立即停止程序,看看当时其他线程在做什么?

您可能想要设置条件断点而不是使用 assert:

如果您想以编程方式执行此操作,请使用 DebugBreak。 (C# 有一个等效的 api System.Diagnostics.Debugger.Break)

如果您想从 ide 执行此操作,您可以从 msdn page 设置一个断点(或中断所有应用程序,ctrl+alt+B)从 visual studio然后在线程window中使用"freeze"和"thaw"控制线程执行。