lorenzodelarocha / touchegg

Automatically exported from code.google.com/p/touchegg
0 stars 0 forks source link

Segfault when running touchegg #134

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I updated to the latest utouch daily build and installed touchegg from source. 
I'm running Oneiric on a Mactel 8.1. After starting touchegg in a terminal I 
get this output:

kermit@Glamdring$ touchegg

(touchegg:7765): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",

(touchegg:7765): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",

(touchegg:7765): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",

(touchegg:7765): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",
Reading config from  "/home/kermit/.config/touchegg/touchegg.conf" 
Try to make a multitouch gesture. If everything goes well the information about 
the gesture must appear 
Segmentation fault
kermit@Glamdring$

If additional info is needed I can collect it.

Original issue reported on code.google.com by kermit666 on 3 Jan 2012 at 11:40

GoogleCodeExporter commented 8 years ago
The same problems with the repository package?? Probably is a problem with the 
new uTouch, I'll try to test it, but I must tell you that I haven't got many 
time, the fix can delay...

Original comment by jose.exposito89@gmail.com on 5 Jan 2012 at 11:27

GoogleCodeExporter commented 8 years ago
Hello Jose,

yes, the same problem with the repository version of touchegg, only the output 
is:

kermit@Glamdring:~$ touchegg

(touchegg:8095): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",

(touchegg:8095): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",

(touchegg:8095): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",

(touchegg:8095): Gtk-WARNING **: Unable to locate theme engine in module_path: 
"pixmap",
Reading config from  "/home/kermit/.config/touchegg/touchegg.conf" 
Segmentation fault
kermit@Glamdring:~$ 

So no "Try to make.." line.

Anyway, when I try to debug the code from SVN in QtCreator, the debugger is not 
working fully for some reason, so I can only see assembly commands. The SIGSEGV 
signal gets thrown somewhere soon after (some 10-20 assembler commands after) 
the Touchegg::Touchegg constructor is executed. This is the stack at that 
moment:

0   QString::fromLocal8Bit(char const*, 
int)    /usr/lib/x86_64-linux-gnu/libQtCore.so.4    0   0x7ffff637ee90  
1   QCoreApplication::arguments()   /usr/lib/x86_64-linux-gnu/libQtCore.so.4    0   0x7ff
ff64246eb   
2   ??  /usr/lib/x86_64-linux-gnu/libQtGui.so.4 0   0x7ffff69d4ad0  
3   ??  /usr/lib/x86_64-linux-gnu/libQtGui.so.4 0   0x7ffff69d5699  
4   _SmcProcessMessage  /usr/lib/x86_64-linux-gnu/libSM.so.6    0   0x7ffff3660de7  
5   IceProcessMessages  /usr/lib/x86_64-linux-gnu/libICE.so.6   0   0x7ffff3452f46  
6   ??  /usr/lib/x86_64-linux-gnu/libQtGui.so.4 0   0x7ffff69c0e9f  
7   QMetaObject::activate(QObject*, QMetaObject const*, int, 
void**) /usr/lib/x86_64-linux-gnu/libQtCore.so.4    0   0x7ffff6435eba  
8   QSocketNotifier::activated(int) /usr/lib/x86_64-linux-gnu/libQtCore.so.4    0   0x7
ffff647f51e 
9   QSocketNotifier::event(QEvent*) /usr/lib/x86_64-linux-gnu/libQtCore.so.4    0   0x7
ffff643db6b 
10  QApplicationPrivate::notify_helper(QObject*, 
QEvent*)    /usr/lib/x86_64-linux-gnu/libQtGui.so.4 0   0x7ffff6953424  
11  QApplication::notify(QObject*, 
QEvent*)    /usr/lib/x86_64-linux-gnu/libQtGui.so.4 0   0x7ffff6958291  
12  QCoreApplication::notifyInternal(QObject*, 
QEvent*)    /usr/lib/x86_64-linux-gnu/libQtCore.so.4    0   0x7ffff6422afc  
13  ??  /usr/lib/x86_64-linux-gnu/libQtCore.so.4    0   0x7ffff644d5b7  
14  g_main_context_dispatch /lib/x86_64-linux-gnu/libglib-2.0.so.0  0   0x7ffff41d0a
5d  
15  ??  /lib/x86_64-linux-gnu/libglib-2.0.so.0  0   0x7ffff41d1258  
16  g_main_context_iteration    /lib/x86_64-linux-gnu/libglib-2.0.so.0  0   0x7ffff41d1
429 
17  QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)  /u
sr/lib/x86_64-linux-gnu/libQtCore.so.4  0   0x7ffff644ded6  
18  ??  /usr/lib/x86_64-linux-gnu/libQtGui.so.4 0   0x7ffff69fb07e  
19  QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)    /usr/lib/x86
_64-linux-gnu/libQtCore.so.4    0   0x7ffff6421cf2  
20  QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) /usr/lib/x86_64-linux
-gnu/libQtCore.so.4 0   0x7ffff6421ef7  
... <More>              

Seems to be some string problem steming from the arguments given to Qt 
application.

That's about as much help as I can provide without the debugger functioning 
correctly.

Cheers,
Dražen

Original comment by kermit666 on 5 Jan 2012 at 1:15

GoogleCodeExporter commented 8 years ago
Got the debugger working. The signal gets thrown when the program is already in 
the main Qt loop, after touchegg.exec(). It might going to be hard to locate 
the source. This is what the touchegg data structure looks like in the debugger 
at the time of the execution of the exec() method, in case it helps:

    *(Touchegg*)0x7fffffffe070      Touchegg
        QApplication        QApplication
        gestureCollector    0x814d00    GestureCollector
            QObject     QObject
            filters <0 items>   QHash<unsigned long, QList<_GeisFilter*>>
            geis        _Geis
            socketNotifier      QSocketNotifier
            subscriptions   <0 items>   QHash<unsigned long, QList<_GeisSubscription*>>
        gestureHandler  0x81aa60    GestureHandler
            QObject     QObject
            actionFact      ActionFactory
            config      Config
            currentGesture  0x0 Gesture *
            gestureFact     GestureFactory
            timerTap        QTimer
        windowListener  0x814380    WindowListener
            QObject     QObject
            clientList  <13 items>  QList<unsigned long>
                [0] 44040201    unsigned long
                [1] 39845892    unsigned long
                [2] 41943042    unsigned long
                [3] 41943043    unsigned long
                [4] 41943044    unsigned long
                [5] 41943045    unsigned long
                [6] 39846973    unsigned long
                [7] 65011718    unsigned long
                [8] 41943063    unsigned long
                [9] 81788945    unsigned long
                [10]    83886084    unsigned long
                [11]    73400553    unsigned long
                [12]    85983246    unsigned long

Original comment by kermit666 on 5 Jan 2012 at 2:09

GoogleCodeExporter commented 8 years ago
Having this issue too.

Running touchegg on 11.10 amd64 v1.0.0 in the repo, it segfaults after changing 
settings in the GUI. In the GUI, whenever I change settings, it kills touchegg 
altogether. Then, after touchegg has died once, I can't use the trackpad 
anymore for single finger gestures, ie: mouse movement.

I'd be happy to help debug this.

Original comment by rfkroc...@gmail.com on 1 Feb 2012 at 10:02

GoogleCodeExporter commented 8 years ago
I can't even see the GUI. The application crashes right after I enter 
'touchegg' in the terminal.

Original comment by kermit666 on 25 Feb 2012 at 10:48

GoogleCodeExporter commented 8 years ago
Confirming.

Segfault when run.

Original comment by tehsta...@gmail.com on 15 Mar 2012 at 10:30

GoogleCodeExporter commented 8 years ago
Also having this issue.

Original comment by egil...@gmail.com on 15 Mar 2012 at 11:04

GoogleCodeExporter commented 8 years ago
I have a theory that this bug is caused by Unity... but then again, I have a 
theory that just about every bad thing in life is caused by the Unity Display 
Manager. 

Original comment by rfkroc...@gmail.com on 15 Mar 2012 at 11:08

GoogleCodeExporter commented 8 years ago
Running gnome-shell, I cannot even start the GUI. Segfaults at startup.

Original comment by egil...@gmail.com on 15 Mar 2012 at 11:09

GoogleCodeExporter commented 8 years ago
Hi!

Finally I achieved reproduce the error. Please, try to compile the current SVN 
code <https://code.google.com/p/touchegg/wiki/CompileSourceCode>. To get it:

$ svn checkout http://touchegg.googlecode.com/svn/touchegg/ touchegg-read-only

Compile is very easy, only is necessary follow the wiki instructions to get a 
"touchegg" executable. After compile it, kill touchegg if is running ($ killall 
-9 touchegg) and test the generated executable ($ ./touchegg) and if all is OK 
execute the final step $ sudo make install to install it.

Sorry for the delay solving the bug :S

Original comment by jose.exposito89@gmail.com on 20 Mar 2012 at 12:58

GoogleCodeExporter commented 8 years ago
Hi,
Thanks for fixing this bug ;) I tried it and it work fine. I only have a 
question. In a previous issue you said that it doesn't support more than 2 
fingers in Ubuntu 11.10 (because of Unity). I would like to know which 
distribution you are using ?

Thanks in advanced!

Original comment by raphael....@gmail.com on 20 Mar 2012 at 2:40

GoogleCodeExporter commented 8 years ago
I can also confirm that the bug is fixed. It compiles correctly and it
outputs the gestures I make in the terminal. No GUI is started, though. I
see no other command installed by touchegg, only the executable in
/usr/bin. The GUI doesn't work in Ubuntu 11.10?

Original comment by kermit666 on 20 Mar 2012 at 8:57

GoogleCodeExporter commented 8 years ago
Thank you very much for test the bug and confirm it :D

@raphael.jobin

I'm using Ubuntu 11.10, but with KDE desktop, not with Unity. With other 
desktop environments like LXDE, XFCE, OpenBox, etc you will be able to use all 
fingers.

@kermit666

Yes, for the moment, and because I have little time, there is not GUI 
available, but in the future I will update the GUI. You will need to edit the 
Touchégg configuration file:

    http://code.google.com/p/touchegg/wiki/AllGestures
    http://code.google.com/p/touchegg/wiki/AllActions

Is easy (not as the GUI.. but is easy) and if you have any problem you can ask 
me here.

Greetings, and thanks again for testing!!

Original comment by jose.exposito89@gmail.com on 20 Mar 2012 at 10:49