ADVRHumanoids / XBotGUI

XBot Graphical User Interface for XBot powered robots
3 stars 1 forks source link

XBotGUI won't start on 14.04 #1

Closed liesrock closed 7 years ago

liesrock commented 7 years ago

When launching it:

Program received signal SIGSEGV, Segmentation fault. 0x00007fffef631dfc in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4

liesrock commented 7 years ago

when trying to ldd and grepping Qt:

libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007efc9fd12000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007efc9f6c5000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007efc9c988000)
libQtGui.so.4 => /usr/lib/x86_64-linux-gnu/libQtGui.so.4 (0x00007efc97bdb000)
libQtCore.so.4 => /usr/lib/x86_64-linux-gnu/libQtCore.so.4 (0x00007efc976f6000)
liesrock commented 7 years ago

Is there a clean way to update the Gui and the Core to QT5 on 14.04? Any idea @alessandrosettimi ?

alessandrosettimi commented 7 years ago

It is a strange behavior since in the CMakelists.txt we just look for Qt5.

alessandrosettimi commented 7 years ago

Bug replicated on another 14.04, I don't know if we can make it work on 14.04 with Qt5, I can make a Qt4-Qt5 compability. I didn't do it from the start because I understood that XBotStuff was going to be used on 16.04 only.

liesrock commented 7 years ago

I agree that the XBotGUI needs to work in 16.04: do not start extra-work for 14.04 I will try to find an "hack" to avoid the crash.

liesrock commented 7 years ago

On 16.04 grepping on ldd give me this result:

libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fd56b916000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fd56b3cd000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fd568727000)

So no libQtGui.so.4 or libQtCore.so.4 are linked.

liesrock commented 7 years ago

On 14.04 QT version 4.8.6 is installed ( 4.8.7 on 16.04)

liesrock commented 7 years ago

Ubuntu 16.04 qmake is installed with the package qt4-qmake and qt5-qmake

/usr/lib/x86_64-linux-gnu/qt4/bin/qmake --version

QMake version 2.01a
Using Qt version 4.8.7 in /usr/lib/x86_64-linux-gnu

and

/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --version

QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu
liesrock commented 7 years ago

Ubuntu 14.04 qmake is installed with the package qt4-qmake and qt5-qmake

/usr/lib/x86_64-linux-gnu/qt4/bin/qmake --version

QMake version 2.01a
Using Qt version 4.8.6 in /usr/lib/x86_64-linux-gnu

and

/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --version

QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu
liesrock commented 7 years ago

Given the situation, we need to be able to choose which qmake version to use in the CMakeLists (@asettimi any ideas about it?)

I tried to install libqt4 debug symbol and here is the backtrace of the segfault when I run XBotGUI:

Program received signal SIGSEGV, Segmentation fault.
QList (this=0x7ffff012a4f8 <QPrinterInfoPrivate::shared_null+24>)
    at ../../include/QtCore/../../src/corelib/tools/qlist.h:121
121 ../../include/QtCore/../../src/corelib/tools/qlist.h: No such file or directory.
(gdb) bt
#0  QList (this=0x7ffff012a4f8 <QPrinterInfoPrivate::shared_null+24>)
    at ../../include/QtCore/../../src/corelib/tools/qlist.h:121
#1  QPrinterInfoPrivate (name=..., this=0x7ffff012a4e0 <QPrinterInfoPrivate::shared_null>)
    at painting/qprinterinfo_p.h:71
#2  __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at painting/qprinterinfo.cpp:35
#3  _GLOBAL__sub_I_qprinterinfo.cpp(void) () at painting/qprinterinfo.cpp:163
#4  0x00007ffff7dea10a in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0x7fffffffdbb8, 
    env=env@entry=0x7fffffffdbc8) at dl-init.c:78
#5  0x00007ffff7dea1f3 in call_init (env=<optimized out>, argv=<optimized out>, argc=<optimized out>, 
    l=<optimized out>) at dl-init.c:36
#6  _dl_init (main_map=0x7ffff7ffe1c8, argc=1, argv=0x7fffffffdbb8, env=0x7fffffffdbc8) at dl-init.c:126
#7  0x00007ffff7ddb30a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#8  0x0000000000000001 in ?? ()
#9  0x00007fffffffdef3 in ?? ()
#10 0x0000000000000000 in ?? ()
alessandrosettimi commented 7 years ago

I need to investigate a little about this... However the crash is basically because the program is mixing qt4 and qt5 in the same application.

alessandrosettimi commented 7 years ago

we could switch between qt4 and qt5 depending ros distro, as done here.

liesrock commented 7 years ago

Ok I will give a try on a branch.

liesrock commented 7 years ago

Merged in https://github.com/ADVRHumanoids/XBotGUI/pull/3