c++ - CrtDbgBreak 问题

标签 c++ visual-studio-2010

我曾经使用 VS2010 的发布版本,突然,当切换到调试版本时,我收到一条断点错误消息,它被重定向到文件 dbgrptt,该文件位于 C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\dbgrptt.c

显示的错误信息是:

 ex.exe has triggered a breakpoint

这是显示错误消息后重定向的位置。

_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
__debugbreak(); 
}

我怎样才能摆脱它?

最佳答案

CRT 的调试版本检测到出现错误。调试版本牺牲了运行时速度以进行更昂贵的检查,以便它可以检测到此类情况。它们通常是由代码中的错误引起的。换句话说,您的错误碰巧没有出现在发布版本中 - 到目前为止。

如何摆脱它?修复错误。在调试器下运行您的程序,当您遇到错误时,检查调用堆栈。向上调用堆栈,直到您发现发生了什么。很有可能,您正在做一些事情,比如使用悬空引用/指针、无效的迭代器,或者您访问了一些越界的东西。

关于c++ - CrtDbgBreak 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170271/

相关文章:

c++ - 如何在没有 free() 或 delete 的情况下返回 char*?

c++ - 在 Windows XP 中使用 C++ 获取主音量

visual-studio-2010 - 无法使用 AnkhSVN 通过 HTTPS 连接到 SVN 存储库

c++ - VS2010 中的前向/强枚举

c++ - Visual Studio 2010 + 视觉辅助 C++ : Are there any automated ways to create getters and setters?

c++ - 创建双向链表节点的深层拷贝

c++ - 我可以将 openGL 缓冲区设置为按照与 OBJ 文件类似的原理工作吗?

c++ - Windows 10 上带有 mingw 的 CMake : Detecting CXX compiler ABI info - failed

visual-studio-2010 - 如何启动 VS 2010 以便它打开一个 sln 文件并在环境中选择特定的解决方案配置

c++ - 多线程 OpenCV 程序