如果没有QDebug消息,Qt应用程序就会崩溃
Qt App Crashes If Ran Without a QDebug Message First
我每天都在做一个应用程序已经有一段时间了,好像已经有几个星期了,并且在开发方面已经取得了很大的进展。
我有一个不必要的类,它只是转发对象创建。它基本上是一个"Window"类创建了一个"Widget"类。因此,我没有通过不必要的"Window"类来创建"Widget"类,而是直接在主"App"类中创建了"Widget"类。但是现在如果我运行它,应用程序崩溃了,就像它在某种递归循环中一样,并且不显示窗口。
我在每行上添加了一些QDebug消息,以查看它在崩溃之前到达的位置,然后它运行得很好。这到底是怎么回事?它可以像这样运行:
void App::initialize()
{
qDebug() << "Initializing...";
qDebug() << "Creating the widget";
widget = new Widget();
qDebug() << "Showing the widget...";
widget->show();
qDebug() << "Initialized";
}
但是,如果我删除前两个QDebug消息中的任何一个,它就会卡在类似递归的循环中。我不知道它为什么会这样。我检查了项目文件和qmake,在调试和发布模式下运行,结果都是一样的。
我不是在寻找如何解决这个问题的答案。我想知道的是有没有人有过这样的经历。这对我来说毫无意义,我不知道它怎么可能崩溃……这是Qt的bug还是什么?
听起来好像您有内存管理问题——要么是没有正确初始化的东西,要么是践踏了其他人的内存(缓冲区溢出)。qDebug创建了一个相当重要的缓冲区——当被践踏时,它不会使程序崩溃,或者未初始化的值可以改变其默认值。
我将仔细检查您的初始化。特别要检查在构造函数中处理的事情,这些事情可能是通过从您删除的上一个类的初始化项传递的。。
Foo::Foo(QObject *parent) : QObject(parent)
相关文章:
- 使用调试/崩溃报告将应用程序部署到客户端
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 如何找出应用程序崩溃的原因 - Win 10 LTSB
- 操纵安卓相机的深度图导致应用程序崩溃
- 为什么从文件获取图标时应用程序有时会崩溃?
- 在 Ubuntu 服务器上运行 QT 应用程序时崩溃
- 调用 java 的回调() 时应用程序崩溃.由于 detatchThread 而获得运行时错误
- Qt应用程序找不到第三方DLL并崩溃
- 由于____chkstk_darwin,在Catalina上使用部署10.10编译的MacOS应用程序在HighSierra版本<崩溃
- QCompleter set模型使应用程序崩溃
- Qt 5 应用程序崩溃并出现"qLineEdit::setText"
- 切换NvAPI_Stereo_Deactivate/NvAPI_Stereo_activate会使unity应用程序崩溃
- Opencv在2013年第5季度不起作用.应用程序总是在窗口中崩溃
- eglSwapBuffers上的应用程序崩溃
- C 多线程崩溃应用程序
- 加载的 obj 模型闪烁并崩溃应用程序
- strcats func 崩溃应用程序
- 生成的Protobuf代码崩溃应用程序
- C++字符串::查找崩溃应用程序
- av_free随机崩溃应用程序-FFMPEG C++