[Qt-interest] Segfault with an opengl widget
Damien R.
damienrg+list at gmail.com
Wed Sep 1 13:22:47 CEST 2010
Hi,
I am using the version 4.6.3-1 of qt on debian sid 64.
I have a segfault when I call QCoreApplication::exit(0) with the
following backtrace:
#0 QWidgetPrivate::init (this=0x7d9c00, parentWidget=0x0, f=DWARF-2
expression error: DW_OP_reg operations must be used either alone or in
conjuction with DW_OP_piece.
) at kernel/qwidget.cpp:1124
#1 0x00007ffff47e7cb1 in QWidget (this=0x85b6b0, dd=<value optimized
out>, parent=0x0, f=...) at kernel/qwidget.cpp:1044
#2 0x00007ffff4827722 in QDesktopWidget (this=0x85b6b0) at
kernel/qdesktopwidget_x11.cpp:220
#3 0x00007ffff478e5cc in QApplication::desktop () at
kernel/qapplication.cpp:3073
#4 0x00007ffff4832e24 in QWidgetPrivate::create_sys (this=0x808830,
window=0, initializeWindow=<value optimized out>,
destroyOldWindow=<value optimized out>) at kernel/qwidget_x11.cpp:551
#5 0x00007ffff47e57db in QWidget::create (this=0x808710, window=0,
initializeWindow=112, destroyOldWindow=128) at kernel/qwidget.cpp:1323
#6 0x00007ffff47e200a in QWidgetPrivate::createWinId (this=<value
optimized out>, winid=0) at kernel/qwidget.cpp:2324
#7 0x00007ffff47e601f in QWidget::winId (this=0x808d50) at
kernel/qwidget.cpp:2306
#8 0x00007ffff1f7e31a in QGLContext::makeCurrent (this=0x8485d0) at
qgl_x11.cpp:846
#9 0x00007ffff1f7d002 in QGLShareContextScope (this=0x845350,
__in_chrg=<value optimized out>) at
../../include/QtOpenGL/private/../../../src/opengl/qgl_p.h:457
#10 ~QGLTextureGlyphCache (this=0x845350, __in_chrg=<value optimized
out>) at gl2paintengineex/qtextureglyphcache_gl.cpp:65
#11 0x00007ffff49b99a2 in ~QFontEngine (this=0x888240, __in_chrg=<value
optimized out>) at text/qfontengine.cpp:190
#12 0x00007ffff4a73573 in ~QFontEngineX11FT (this=0x888240,
__in_chrg=<value optimized out>) at text/qfontengine_x11.cpp:1123
#13 0x00007ffff49b9c97 in ~QFontEngineMulti (this=0x84ab80,
__in_chrg=<value optimized out>) at text/qfontengine.cpp:1278
#14 0x00007ffff4a786d4 in ~QFontEngineMultiFT (this=0x84ab80,
__in_chrg=<value optimized out>) at text/qfontengine_x11.cpp:902
#15 0x00007ffff49ad402 in QFontCache::clear (this=0x84a0a0) at
text/qfont.cpp:2691
#16 0x00007ffff49b334a in ~QFontCache (this=0x7d9c00, __in_chrg=<value
optimized out>) at text/qfont.cpp:2631
#17 0x00007ffff418dc32 in QThreadStorageData::set (this=<value optimized
out>, p=0x0) at thread/qthreadstorage.cpp:148
#18 0x00007ffff4809aca in qt_cleanup () at kernel/qapplication_x11.cpp:2593
#19 0x00007ffff479b1b9 in ~QApplication (this=0x7fffecd5ad90,
__in_chrg=<value optimized out>) at kernel/qapplication.cpp:1086
So, ~QApplication destroy all widgets (call w->destroy(true, true), the
destructor of my widget is not called) and when qt_cleanup is called, it
calls windId() which creates a new widget.
I do not know if it is a bug in qt or if I made a mistake. Can someone
give me clues ?
--
Damien R.
More information about the Qt-interest-old
mailing list