Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如果在没有QDebug消息的情况下运行,Qt应用程序将崩溃_C++_Qt_Debugging_Crash - Fatal编程技术网

C++ 如果在没有QDebug消息的情况下运行,Qt应用程序将崩溃

C++ 如果在没有QDebug消息的情况下运行,Qt应用程序将崩溃,c++,qt,debugging,crash,C++,Qt,Debugging,Crash,我每天都在开发一个应用程序已经有一段时间了,现在大概有几个星期了,而且已经在开发中取得了很大的进展 我有一个不必要的类,它只是在转发一个对象创建。它基本上是一个“窗口”类,创建了一个“小部件”类。因此,我没有通过那个不必要的“窗口”类来创建“Widget”类,而是直接在主“App”类中创建了“Widget”类。但现在,如果我运行它,应用程序就会崩溃,就像在某个递归循环中一样,并且不会显示窗口 我在每行上添加了一些QDebug消息,以便在崩溃之前查看它的运行情况,然后它就可以正常运行了。这到底是怎

我每天都在开发一个应用程序已经有一段时间了,现在大概有几个星期了,而且已经在开发中取得了很大的进展

我有一个不必要的类,它只是在转发一个对象创建。它基本上是一个“窗口”类,创建了一个“小部件”类。因此,我没有通过那个不必要的“窗口”类来创建“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)