这个问题很简单,但我在网上找不到任何解决方案。
是否可以强制Qt应用程序崩溃
这只是出于开发目的,因为我想对崩溃报告进行实验。
记住,我们在StackOverflow上:-)
怎么样:
int foo(int p) {
return foo(p)+foo(p);
}
foo(0);
PS对于更温和、更特定于Qt的东西,你可以尝试qFatal:
qFatal("boom");
您可以抛出异常,但永远不会捕获它,这可能是您想要的,也可能不是。
编辑:
这是我能找到的跨平台最稳健的解决方案:http://en.cppreference.com/w/cpp/utility/program/raise
如果您使用的是*nix系统,则可以使用提升呼叫。
我想你在做崩溃报告时已经是特定平台的了,我知道目前没有办法跨平台。我不知道有什么类似的解决方案可以在windows环境中工作,可能已经存在了
您可以使用信号Linux库触发segfault:
#include <signal.h>
void raiseSegfault()
{
int error = raise(SIGSEGV);
if (error != 0) {
std::cout << "cannot raise segfault" << std::endl;
exit(0);
}
}
这将可靠地引发分段故障或退出,并且不会依赖于未定义的行为。