C++ 如果在没有QDebug消息的情况下运行,Qt应用程序将崩溃
我每天都在开发一个应用程序已经有一段时间了,现在大概有几个星期了,而且已经在开发中取得了很大的进展 我有一个不必要的类,它只是在转发一个对象创建。它基本上是一个“窗口”类,创建了一个“小部件”类。因此,我没有通过那个不必要的“窗口”类来创建“Widget”类,而是直接在主“App”类中创建了“Widget”类。但现在,如果我运行它,应用程序就会崩溃,就像在某个递归循环中一样,并且不会显示窗口 我在每行上添加了一些QDebug消息,以便在崩溃之前查看它的运行情况,然后它就可以正常运行了。这到底是怎么回事?它运行得很好,如下所示:C++ 如果在没有QDebug消息的情况下运行,Qt应用程序将崩溃,c++,qt,debugging,crash,C++,Qt,Debugging,Crash,我每天都在开发一个应用程序已经有一段时间了,现在大概有几个星期了,而且已经在开发中取得了很大的进展 我有一个不必要的类,它只是在转发一个对象创建。它基本上是一个“窗口”类,创建了一个“小部件”类。因此,我没有通过那个不必要的“窗口”类来创建“Widget”类,而是直接在主“App”类中创建了“Widget”类。但现在,如果我运行它,应用程序就会崩溃,就像在某个递归循环中一样,并且不会显示窗口 我在每行上添加了一些QDebug消息,以便在崩溃之前查看它的运行情况,然后它就可以正常运行了。这到底是怎
void App::initialize()
{
qDebug() << "Initializing...";
qDebug() << "Creating the widget";
widget = new Widget();
qDebug() << "Showing the widget...";
widget->show();
qDebug() << "Initialized";
}
void应用程序::初始化()
{
qDebug()听起来像是内存管理有问题——要么是初始化不正确,要么是踩到别人的内存(缓冲区溢出)。qDebug创建了一个相当重要的缓冲区——踩下它不会使程序崩溃,或者对于未初始化的值,可以更改其默认值
我会仔细检查你的初始化,特别是检查你的构造函数中处理的东西,这些东西可能是用你之前移除的类中的初始化器传递的
e、 g
你的应用程序是多线程的吗?不是。目前都是一个单ui线程。在发布之前,我已经详细检查了所有这些。按照每行代码查找以什么顺序创建的内容。都是正确的。在访问之前,所有内容都已初始化。
Foo::Foo(QObject *parent) : QObject(parent)