我写了一个小小的Qt4(C ++)应用程序,除了显示列表之外没什么用。 这是一个QDialog,所以按下它会关闭它。
现在,如果我这样做(运行,然后关闭)连续约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();
}
正如你所看到的,这个程序没有任何东西(除了显示QDialog,但那是Qt,而不是我的程序)。我不知道2行代码(+ Qt代码,它应该工作,因为每天有数百万人使用它)会导致我的X会话崩溃。到目前为止,我只使用Gnome 3在Fedora 16上进行了测试。
Edit2 :使用 KDE和LXDE在同一系统上测试它(相同的二进制文件),不会崩溃。在Ubuntu上还有Gnome,KDE和LXDE,没有崩溃。必须与Gnome3 / Fedora有关...