我怎样才能让 QtCreator 打破异常?

Posted

技术标签:

【中文标题】我怎样才能让 QtCreator 打破异常?【英文标题】:How can I make QtCreator break on exceptions? 【发布时间】:2013-05-24 12:51:37 【问题描述】:

我正在 QtCreator 中调试一些 BOOST 单元测试,不幸的是它们因异常而崩溃。如果引发任何异常,如何使 QtCreator 自动中断?在 Visual Studio 中有一个复选框,在 QtCreator 中是否也可用?

在我的例子中,BOOST 捕获了异常,所以程序在技术上不会崩溃。但是,报告的消息并没有真正的帮助。

我之前在 KDevelop 中尝试过相同的操作,因此我针对这两个 IDE 提出了单独的问题。

【问题讨论】:

【参考方案1】:

打开调试模式(Ctrl+F4 或右侧栏上的第 4 种模式)。

在右下角的断点列表中打开上下文菜单:

选择“添加断点”并将断点类型设置为“C++异常时中断”:

【讨论】:

有没有办法选择中断某种类型/类别的异常? 我已经明确检查了“中断:”类别中的“C++ 异常”框,但由于某种原因,Qt Creator 拒绝中断异常。我知道一个异常被抛出的事实,因为我有一个“catch (const std::exception& exc)”子句,我在其中打印 exc 对象的 what() 方法的返回值,它说“std::坏分配”。 :( 我看到 std::map 抛出一个 out_of_range 异常,启用了上述答案中的解决方案,但 QtCreator (4.11.1) 仍然没有中断,只是终止程序 =[跨度> 我在 Qtest 项目中遇到了类似的问题。看来 QTest 并不关心这个设置

以上是关于我怎样才能让 QtCreator 打破异常?的主要内容,如果未能解决你的问题,请参考以下文章

打破嵌套循环和主循环[重复]

cmake 安装后从 QtCreator 运行项目

具有非内联汇编的 Qt C++ 项目

如何使用 QtCreator 为 Android/iOS 构建基于 CMake 的项目

我怎样才能检查我是否在线程中捕获异常?

打破pydev中的异常