如何在Qt中模拟崩溃?

时间:2016-03-30 19:59:36

标签: c++ qt qt5

非常简单的问题,但我无法在网上找到任何解决方案。

是否可以强制Qt应用崩溃?

这仅用于开发目的,因为我想尝试崩溃报告。

3 个答案:

答案 0 :(得分:5)

请记住,我们依靠 StackOverflow : - )

怎么样:

int foo(int p) {
    return foo(p)+foo(p);
}

foo(0);

PS更适合某些特定的Qt,你可以尝试使用qFatal:

qFatal("boom");

答案 1 :(得分:2)

你可以抛出异常并且永远不会抓住它,这可能是也可能不是你想要的。

修改

这是我能找到的跨平台最强大的解决方案:http://en.cppreference.com/w/cpp/utility/program/raise

<击> 如果您使用的是* nix系统,则可以使用raise电话。

<击>

我假设您已经在制作崩溃报告时已经是平台特定的,我知道目前无法制作跨平台。我不知道在Windows环境中可以使用的类似解决方案,可能存在。

答案 2 :(得分:0)

您可以使用信号Linux库触发段错误:

#include <signal.h>

void raiseSegfault()
{
    int error = raise(SIGSEGV);
    if (error != 0) {
        std::cout << "cannot raise segfault" << std::endl;
        exit(0);
    }
}

这将可靠地引发分段错误或退出,并且不会依赖于未定义的行为。