[Interest] QTimer Freeze in 4.8
Simone
cjb.sw.nospam at gmail.com
Thu Jun 23 21:53:00 CEST 2016
Sorry, I did not pay attention to the mail recipients.
Today, after many tests I discovered that also a simple application with a QMainWindow only and a timer that increase a counter, is freezed after about 3 hours.
The timer run every 250ms.
The touch screen press recover the situation, and everything resume working magically, it seems that the event loop is waiting for some signals, but unfortunately I cannot follow the sources.
Gdb is working if I put a breakpoint, i can follow my code step by step, but since the event dispatcher is in qt libraries, I cannot see where it stuck.
Any suggestion about some tests that I can do?
Is ther a way to configure gdb to see the the qt sources when debugging?
Thanks a lot
> Il giorno 22/giu/2016, alle ore 21:41, Thiago Macieira <thiago.macieira at intel.com> ha scritto:
>
>> On quarta-feira, 22 de junho de 2016 14:49:39 PDT Cjb_SW Freescale wrote:
>> yes and no, I mean that every other process is executed proper by Linux,
>> and also a second QThread running in the GUI application is running fine.
>> Seems that only the graphic Thread is "freezed". It will resume by touching
>> the Touchscreen (which is USB, managed via Tslib).
>>
>> Unfortunately I cannot build backtraces, I have problems with GDB. I can
>> launch the program under gdbserver, and I can set breakpoints, but if I
>> press the Interrupt button, then I can see a disassembly window, and I
>> can't see where it is the programcounter in my sources. So I tried to
>> Interrupt the application while is in the freeze state, but I can't see
>> something useful.
>
> Please, always reply to the mailing list. If you reply to me personally, it
> may get lost in inbox and I may never reply. And no one else would have the
> opportunity to, either.
>
> Anyway, since you said that other processes are running just fine and even
> other threads in the same process, my conclusion is that something is blocking
> the GUI thread in your application. We've seen this happen in Qt 5 with XCB,
> whenever the screensaver is on or when you swap to another virtual terminal:
> there's a function call we make that blocks on waiting for a reply from the X
> server, which won't come until the display is unlocked.
>
> Clearly that's not your case, but you get the idea of what it might be.
>
> Unfortunately, I can't help you without a backtrace (and one with debug
> symbols, at that). I have NEVER built a QWS build of Qt and I don't even have
> a Qt 4.8 source handy to look things up. Sorry.
>
> My recommendations are:
> * fix GDB. It's unacceptable for it not to work.
> * consider upgrading to Qt 5.6 or 5.7 (which means dropping QWS for something
> else)
>
> Note that you can work around a non-working gdbserver by causing your process
> to dump core while in the frozen state (kill -ABRT, for example), then loading
> that core file on your host machine's target gdb.
>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
> Software Architect - Intel Open Source Technology Center
>
More information about the Interest
mailing list