[Interest] Crash when starting Qt5 rasterwindow on ARM/linuxfb

Samuel Rødal samuel.rodal at digia.com
Thu Jan 10 08:08:34 CET 2013


On 01/09/2013 11:36 PM, Thomas Petazzoni wrote:
> Hello,
>
> I am currently packaging Qt5 for the Buildroot embedded Linux build
> system (http://buildroot.org).
>
> I am therefore trying to get the 'rasterwindow' example (from
> qtbase/examples/gui/rasterwindow/) to run with the 'linuxfb' graphics
> backend on a ARM platform (currently a Cortex-A8 platform emulated by
> Qemu).
>
> I first got a segfault that I could fix, see the patch '[PATCH qtbase]
> qlinuxfbscreen: fix crash in switchToGraphicsMode()' I just send to
> this list.
>
> But once this first easy issue was fixed, I got another segfault, which
> this time requires more knowledge of Qt internals, which I don't have.
>
> So, basically, I'm starting my application as follows:
>
> ./rasterwindow -platform linuxfb
>
> and I get the following trace in gdb:
>
> Program received signal SIGSEGV, Segmentation fault.
> QFbBackingStore::QFbBackingStore (this=0x17588, window=0x7efffc34) at fbconvenience/qfbbackingstore.cpp:54
> 54	    (static_cast<QFbWindow *>(window->handle()))->setBackingStore(this);
> (gdb) bt
> #0  QFbBackingStore::QFbBackingStore (this=0x17588, window=0x7efffc34) at fbconvenience/qfbbackingstore.cpp:54
> #1  0x768ac016 in QLinuxFbIntegration::createPlatformBackingStore (this=<optimized out>, window=0x7efffc34) at qlinuxfbintegration.cpp:87
> #2  0x76f33438 in QBackingStore::QBackingStore (this=0x19008, window=0x7efffc34) at painting/qbackingstore.cpp:122
>
> Does anyone has an idea? Should I be doing a formal bug report?

Seems like a bug in the qlinuxfb platform. QFbBackingStore is assuming 
that create() has already been called on the QWindow. Before create() is 
called window->handle() will return 0. It's probably better if 
QFbBackingStore does this initialization lazily.

--
Samuel




More information about the Interest mailing list