我有一个基于 UnitTest++ 的单元测试项目。我通常在代码的最后一行设置一个断点,以便在其中一个测试失败时检查控制台:
n = UnitTest::RunAllTests();
if ( n != 0 )
{
// place breakpoint here
return n;
}
return n;
但是每次我从 SVN 重新 checkout 代码时,我都必须重新插入它。是否有可能 编译器有点放置断点?:
n = UnitTest::RunAllTests();
if ( n != 0 )
{
// place breakpoint here
#ifdef __MSVC__
@!!!$$$??___BREAKPOINT;
#endif
return n;
}
return n;
最佳答案
使用 __debugbreak()
内在(需要包含 <intrin.h>
)。
使用 __debugbreak()
最好直接写__asm { int 3 }
因为在为 x64 架构编译代码时不允许内联汇编。
为了记录,在 Linux 和 Mac 上,使用 GCC,我使用的是 __builtin_trap()
.
关于c++ - Visual Studio - 可以是从代码调用的断点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389270/