如何在Qt中模拟崩溃
How to simulate a crash in Qt?
这个问题很简单,但我在网上找不到任何解决方案。
是否可以强制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);
}
}
这将可靠地引发分段故障或退出,并且不会依赖于未定义的行为。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 如何使用Google Mock来模拟gettimeofday()
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- G锁定铸造到基础上会释放模拟行为
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 使用调试/崩溃报告将应用程序部署到客户端
- 落砂模拟碰撞检测C++和SFML
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- 在gtest.中使用fff.h模拟系统API
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 谷歌模拟和覆盖关键字
- 用C#中的并集模拟C++嵌套结构
- omnet++ 模拟在节点关闭时崩溃
- 如何在Qt中模拟崩溃