[Lazarus] How do events come into the glib event queue?

Martin Grajcar maaartinus at gmail.com
Fri Mar 4 02:36:25 CET 2016


Our Lazarus-GTK2 application crashes due to a GTK event whose target has
been freed. My problem is that I can see only the place where this happens
and the data has already been overwritten. *What I need is the place where
the event was generated or enqueued.*

I thought it'd be gtk2msgqueue.pp, but TGtkMessageQueue.AddMessage gets
never called before the crash. A side question: What is TGtkMessageQueue
good for?

Below is the stacktrace... I'm sure it's not helpful for finding out the
bug, it just illustrates my problem.

Regards,
Martin.

#0  g_type_check_instance_is_a (type_instance=0x85e58f0,
iface_type=139661072) at gtype.c:3967
#1  0x0820f28a in
GLIB2_G_TYPE_CHECK_INSTANCE_TYPE$POINTER$LONGWORD$$BOOLEAN ()
#2  0x08200345 in GTK2_GTK_CHECK_TYPE$POINTER$LONGWORD$$BOOLEAN ()
#3  0x082009c6 in GTK2_GTK_IS_WIDGET$POINTER$$BOOLEAN ()
#4  0xb78d8000 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb77ed641 in g_idle_dispatch (source=source at entry=0x85ee160,
callback=0x82e3430 <GTKENTRYDELAYCLEARCURSORPOS>, user_data=0x85e58f0) at
gmain.c:5321
#6  0xb77f0bb9 in g_main_dispatch (context=0x85305d0) at gmain.c:3066
#7  g_main_context_dispatch (context=context at entry=0x85305d0) at
gmain.c:3665
#8  0xb77f0ecf in g_main_context_iterate (context=context at entry=0x85305d0,
block=block at entry=0, dispatch=dispatch at entry=1, self=0x8508000) at
gmain.c:3736
#9  0xb77f0f83 in g_main_context_iteration (context=0x85305d0, may_block=0)
at gmain.c:3797
#10 0x081d8462 in TGTK2WIDGETSET__APPPROCESSMESSAGES (this=<error reading
variable>) at ./gtk2/gtk2widgetset.inc:2326
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20160304/9522257c/attachment-0002.html>


More information about the Lazarus mailing list