永久SIGABRT时以前运行正常
我得到SIGABRT权在main()
开始的时候我打电话:永久SIGABRT时以前运行正常
int main(int argc, char *argv[])
{
QApplication app(argc, argv);//here
...
这是回溯
>~"#0 0x00007ffff1293cc9 in __GI_raise ([email protected]=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56\n"
>~"#1 0x00007ffff12970d8 in __GI_abort() at abort.c:89\n"
>~"#2 0x00007ffff213a0be in QMessageLogger::fatal(char const*, ...) const() from /opt/Qt/5.5/gcc_64/lib/libQt5Core.so.5\n"
>~"#3 0x00007fffe78f7956 in QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, unsigned int, char const*)() from /opt/Qt/5.5/gcc_64/lib/libQt5XcbQpa.so.5\n"
>~"#4 0x00007fffe78fb066 in QXcbIntegration::QXcbIntegration(QStringList const&, int&, char**)() from /opt/Qt/5.5/gcc_64/lib/libQt5XcbQpa.so.5\n"
>~"#5 0x00007fffe7c0e39b in ??() from /opt/Qt/5.5/gcc_64/plugins/platforms/libqxcb.so\n"
>~"#6 0x00007ffff2e5f762 in QPlatformIntegrationFactory::create(QString const&, QStringList const&, int&, char**, QString const&)() from /opt/Qt/5.5/gcc_64/lib/libQt5Gui.so.5\n"
>~"#7 0x00007ffff2e6a9a8 in QGuiApplicationPrivate::createPlatformIntegration()() from /opt/Qt/5.5/gcc_64/lib/libQt5Gui.so.5\n"
>~"#8 0x00007ffff2e6b75d in QGuiApplicationPrivate::createEventDispatcher()() from /opt/Qt/5.5/gcc_64/lib/libQt5Gui.so.5\n"
>~"#9 0x00007ffff233da36 in QCoreApplication::init()() from /opt/Qt/5.5/gcc_64/lib/libQt5Core.so.5\n"
>~"#10 0x00007ffff233da96 in QCoreApplication::QCoreApplication(QCoreApplicationPrivate&)() from /opt/Qt/5.5/gcc_64/lib/libQt5Core.so.5\n"
>~"#11 0x00007ffff2e6d9a9 in QGuiApplication::QGuiApplication(QGuiApplicationPrivate&)() from /opt/Qt/5.5/gcc_64/lib/libQt5Gui.so.5\n"
>~"#12 0x00007ffff5ca392d in QApplication::QApplication(int&, char**, int)() from /opt/Qt/5.5/gcc_64/lib/libQt5Widgets.so.5\n"
>~"#13 0x0000000000435889 in main (argc=1, argv=0x7fffffffec48) at ..../gui/main.cpp:14\n"
以前的代码是工作确定(几分钟前),我检查了库的md5,并与另一台PC(使用相同的库,运行应用程序正常)进行比较 - 没有发现差异。
我找到了一些bug,但不确定它是否连接。
我创建了新的Qt项目并且它的运行正常 - main()
看起来相同(不同的包括库依赖项)。
任何想法接下来我会尝试什么?
UPDATE:
我发誓,我没有改变任何东西,我用git的差异检查 - 空。我长期使用这个提交 - 它可以持续运行好几天。
这是它显示消息:
QXcbConnection:无法连接到显示
此外 - 在GDB运行时,当我从终端运行./app其运行良好, 其运行良好..
,但不能从QtCreator-GDB或者只是在不脱离QtCreator(按Ctrl + R)的gdb运行..
现在,它在另一台计算机 - 新鲜安装的Qt 5.5,新建的同样的错误,也新鲜地建立另一个库.. 然后我删除了整个阴影目录和重建,错误消失..怪异。
我做了同样的rm -rf shadow-dir/*
并运行qmake并建立在我的原始计算机上 - 同样的错误。
消息QXcbConnection: Could not connect to display
意味着应用程序无法连接到X显示。在这种情况下,它试图连接的显示器的名称是空的(该名称应该遵循该消息)。
显示名称可以通过环境变量DISPLAY
传递给应用程序,也可以由应用程序的命令行参数-display ' '
覆盖:
./app-binary -display ' '
检查外壳的正确DISPLAY
值:
echo $DISPLAY
通过打印,在Qt Creator中的QApplication app(argc, argv);
之前的运行时检查应用程序中该变量的值:
qDebug() << qgetenv("DISPLAY");
// or
qDebug() << QProcessEnvironment::systemEnvironment().toStringList();
该打印应该包含类似"DISPLAY=:0"
(与从shell执行期间的值相同)。
Qt创建者项目选项可以覆盖系统环境。
使用调试器? –
完全清洁和重建。 – Bowdzone
它不仅仅是一个崩溃它是致命的退出('QMessageLogger :: fatal'):错误消息和中止。你应该看到一些有用的控制台消息。 –