Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
Qt应用程序在Gnome/Fedora下崩溃X会话(QDialog)_Qt_Crash_X11_Exit_Metacity - Fatal编程技术网

Qt应用程序在Gnome/Fedora下崩溃X会话(QDialog)

Qt应用程序在Gnome/Fedora下崩溃X会话(QDialog),qt,crash,x11,exit,metacity,Qt,Crash,X11,Exit,Metacity,我编写了一个小小的Qt4(C++)应用程序,除了显示一个列表外,它实际上没有什么作用。 这是一个QDialog,按escape将关闭它 现在,如果我这样做(运行,然后关闭)大约3-8次,我的X会话崩溃,我得到我的登录屏幕。 如果我杀死程序而不是优雅地关闭它,则不会发生这种情况 当然,我会仔细检查我的代码,特别是退出时执行的代码。然而,这只是一个小小的析构函数,它删除了以前分配的一些变量。注释掉这些行(->退出时不再执行代码)不会改变任何事情。调用QApplication::exit()也会崩溃

我编写了一个小小的Qt4(C++)应用程序,除了显示一个列表外,它实际上没有什么作用。 这是一个QDialog,按escape将关闭它

现在,如果我这样做(运行,然后关闭)大约3-8次,我的X会话崩溃,我得到我的登录屏幕。 如果我杀死程序而不是优雅地关闭它,则不会发生这种情况

当然,我会仔细检查我的代码,特别是退出时执行的代码。然而,这只是一个小小的析构函数,它删除了以前分配的一些变量。注释掉这些行(->退出时不再执行代码)不会改变任何事情。调用QApplication::exit()也会崩溃

如果有必要的话,我目前正在这个开发系统上使用Gnome

我真的不知道该找什么。 有什么想法吗

编辑: 为了找到罪魁祸首,我已经逐条注释掉了代码。但是,我现在基本上删除了所有内容,除了显示QDialog和崩溃仍然发生的代码

代码如下:

main.cpp

#include <iostream>

#include <QApplication>
#include <QDialog>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    return QDialog().exec();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
QApplication应用程序(argc、argv);
返回QDialog().exec();
}
正如您所看到的,这个程序什么都不做(除了显示QDialog,但这是Qt,不是我的程序)。我不明白2行代码(+Qt代码,应该可以工作,因为每天有数百万人使用它)怎么会使我的X会话崩溃。到目前为止,我只使用Gnome 3在Fedora 16上进行了测试


Edit2:使用KDE和LXDE在同一系统上测试它(相同的二进制文件),没有崩溃。同样在使用Gnome、KDE和LXDE的Ubuntu上,没有崩溃。必须与Gnome3/Fedora有关…

如果没有看到一些代码,可能没有人能提出很多建议。如果你能创建一个展示问题行为的最低限度的工作示例并将其发布在这里,也许有人可以提供帮助。听听X-Server对此有何评论应该是很有趣的。查看日志文件。此文件的位置取决于发行版。如果没有看到一些代码,可能没有人能提出很多建议。如果你能创建一个展示问题行为的最低限度的工作示例并将其发布在这里,也许有人可以提供帮助。听听X-Server对此有何评论应该是很有趣的。查看日志文件。此文件的位置取决于分发。