c++ - Visual Studio C++ 异常......怪异

标签 c++ visual-studio qt exception boost

我有一个 Qt 应用程序,我在 release 配置中编译,运行,然后在程序中执行操作 X。一切运行良好。

然后我在调试配置中编译它,运行不调试(所以CTRL+F5),在程序中执行操作X。一切仍然运行良好。

但是当我尝试运行调试配置调试(所以只需按 F5)然后执行操作 X 时,Visual Studio 会中断并显示一条消息,指出已抛出异常... 完全不相关程序的一部分(正在执行的代码远离 VS 中断的站点,在 QHash 模板中)...然后 VS 挂起,我必须用任务管理器将其终止。我可以无限次地重复这个广告,它总是以同样的方式吓坏了。

Boost::exception 用于异常。 VS 是 2008,SP1。 Qt 是 4.6.2,使用来自 Qt 站点的预编译 VS 二进制文件。

有人知道发生了什么事吗?

最佳答案

Visual Studio 有一个称为“第一次机会异常处理”的功能,当附加到调试器运行时,您可以在抛出某些类型的异常时让调试器中断。

您可以通过转到 Debug -> Exceptions (Ctrl+Alt+E) 并(取消)选中相应的复选框来更改这些设置。

当它中断时,您应该会在“输出”窗口中收到一条消息,指示抛出的异常。

如果您启用了 _HAS_ITERATOR_DEBUGGING(它在调试版本中默认启用),它可能会导致大量迭代器错误抛出异常,而不是执行会导致访问冲突的操作。这是我能想到的唯一会导致异常“随机”发生的事情。

关于c++ - Visual Studio C++ 异常......怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2313894/

相关文章:

c++ - 错误 : "lvalue required as left operand of assignment"

c++ - visual studio 评论生成工具

visual-studio - 适用于Visual Studio 2012的生产力电动工具

c# - HTTP 错误 500.52 - URL 重写模块错误。名称属性

c++ - 如何使用 qt 的 QTextStream 编写 QList 存储项?

c++ - 如何生成不同的新 QColors

c++ - Flex4/AIR 与 NativeProcess : How to pass an image to the native process?

c++ - 运行带有 while 循环的进程时,对话框内容丢失

c++ - 自定义 vector 类中的堆损坏错误

c++ - QTableview:根据其他列中的值显示特定列中的数据