I'm not filing this as a bug as I'm not sure it is.

The project Richard and I work on was segfaulting when opening a submenu.
I enclose the stacktrace from GDB and a small project that elicits it.
As you can see from the project, the cause is generating the submenu
structure twice, the second time from within the Menu_Show () handler.

By only generating the menus once the problem is solved.

Ian
Program received signal SIGSEGV, Segmentation fault.
0x002d05e0 in ?? () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0  0x002d05e0 in ?? () from /lib/tls/i686/cmov/libc.so.6
#1  0x00dfad50 in ?? () from /usr/lib/libQtGui.so.4
#2  0x00dfc39f in QMenu::popup(QPoint const&, QAction*) () from 
/usr/lib/libQtGui.so.4
#3  0x00dfef05 in QMenu::internalDelayedPopup() () from /usr/lib/libQtGui.so.4
#4  0x00dff486 in QMenu::timerEvent(QTimerEvent*) () from /usr/lib/libQtGui.so.4
#5  0x0141a254 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#6  0x009b8326 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#7  0x00e020cc in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4
#8  0x0095a4dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from 
/usr/lib/libQtGui.so.4
#9  0x009610f9 in QApplication::notify(QObject*, QEvent*) () from 
/usr/lib/libQtGui.so.4
#10 0x01409a3b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from 
/usr/lib/libQtCore.so.4
#11 0x01438d66 in ?? () from /usr/lib/libQtCore.so.4
#12 0x01435917 in ?? () from /usr/lib/libQtCore.so.4
#13 0x017105e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#14 0x017142d8 in ?? () from /lib/libglib-2.0.so.0
#15 0x017144b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#16 0x014355d5 in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () 
from /usr/lib/libQtCore.so.4
#17 0x00a1a135 in ?? () from /usr/lib/libQtGui.so.4
#18 0x01408059 in 
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from 
/usr/lib/libQtCore.so.4
#19 0x014084aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () 
from /usr/lib/libQtCore.so.4
#20 0x00dfcdde in QMenu::exec(QPoint const&, QAction*) () from 
/usr/lib/libQtGui.so.4
#21 0x0033293c in CMENU_popup (_object=0x824ac1c, pos=...) at CMenu.cpp:595
#22 0x00332a17 in Menu_Popup (_object=0x824ac1c, _param=0x80a7abc) at 
CMenu.cpp:624
#23 0x08056052 in EXEC_native () at gbx_exec.c:1243
#24 0x080552db in EXEC_native_check (defined=1 '\001') at gbx_exec.c:1035
#25 0x0808e54a in EXEC_loop () at gbx_exec_loop.c:979
#26 0x08054af1 in EXEC_function_loop () at gbx_exec.c:861
#27 0x08054a6b in EXEC_function_real () at gbx_exec.c:848
#28 0x08056b77 in EXEC_public_desc (class=0x80d567c, object=0x826e3d4, 
desc=0x80eed5c, nparam=0) at gbx_exec.c:1497
#29 0x08071759 in raise_event (observer=0x826e3d4, object=0x8253a5c, 
func_id=118, nparam=0) at gbx_api.c:476
#30 0x080719db in GB_Raise (object=0x8253a5c, event_id=6, nparam=0) at 
gbx_api.c:580
#31 0x0031cc31 in CWidget::eventFilter (this=0x383644, widget=0x824b5b8, 
event=0xbfffeae0) at CWidget.cpp:2277
#32 0x01408d9c in 
QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject*, QEvent*) 
()
   from /usr/lib/libQtCore.so.4
#33 0x0095a463 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from 
/usr/lib/libQtGui.so.4
#34 0x009619f7 in QApplication::notify(QObject*, QEvent*) () from 
/usr/lib/libQtGui.so.4
#35 0x01409a3b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from 
/usr/lib/libQtCore.so.4
#36 0x00960952 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, 
QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from 
/usr/lib/libQtGui.so.4
#37 0x009ec088 in ?? () from /usr/lib/libQtGui.so.4
#38 0x009eb511 in QApplication::x11ProcessEvent(_XEvent*) () from 
/usr/lib/libQtGui.so.4
#39 0x00a1a60a in ?? () from /usr/lib/libQtGui.so.4
#40 0x017105e5 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#41 0x017142d8 in ?? () from /lib/libglib-2.0.so.0
#42 0x017144b8 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#43 0x014355d5 in 
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () 
from /usr/lib/libQtCore.so.4
#44 0x00a1a135 in ?? () from /usr/lib/libQtGui.so.4
#45 0x01408059 in 
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from 
/usr/lib/libQtCore.so.4
#46 0x014084aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () 
from /usr/lib/libQtCore.so.4
#47 0x0140c69f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#48 0x0095a577 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#49 0x0031368c in hook_loop () at main.cpp:721
#50 0x0807bc26 in main (argc=1, argv=0xbffff524) at gbx.c:371

Attachment: elicit-sig11-with-menu-0.0.1.tar.gz
Description: GNU Zip compressed data

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Gambas-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to