这似乎是一个错误,因为在 Qt Creator 上,Q_ASSERT(false) 会导致我的应用程序退出,即使文档说它应该允许您在断言处中断:
在 Windows 上,对于调试版本,此函数将报告 _CRT_ERROR 使您能够将调试器连接到应用程序。
在 Qt 创建者上:
在 Qt Creator+MinGW 中编译我的项目时,代码Q_ASSERT(false);
导致程序显示此消息(下面的屏幕截图),之后应用程序退出:
此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。
和应用程序输出窗格显示此调试输出:
ASSERT: "false" in file ..\IntegrateWithQt\main.cpp, line 6
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
在 Visual Studio 上:
当使用 Visual Studio 编译同一个项目(我使用 Qt 插件导入它)时,我会得到一个更有用的 Abort/Retry/Ignore 对话框,其中单击 Retry 会在断言位置中断程序:
我在 Qt Creator 和 Visual Studio 中链接到的 Qt 版本是 4.8.1。这两个项目都是在调试模式下构建的。
那么如何让 Qt Creator 允许我在调试模式下中断断言行呢?