非常简单的问题,但我无法在网上找到任何解决方案。
是否可以强制Qt应用崩溃?
这仅用于开发目的,因为我想尝试崩溃报告。
答案 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);
}
}
这将可靠地引发分段错误或退出,并且不会依赖于未定义的行为。