[Lazarus] Menu editor unstable? - stack trace

Michael Van Canneyt michael at freepascal.org
Mon May 8 15:54:17 CEST 2017



On Mon, 8 May 2017, Michael W. Vogel via Lazarus wrote:

> Am 08.05.2017 um 15:09 schrieb Michael Van Canneyt via Lazarus:
>> I managed to produce a stacktrace. Hopefully this, combined with the 
>> stacktrace
>> at the end is sufficient to solve the issue.
>>
>> Michael.
>>
>> (gdb) cont
>> Continuing.
>> WARNING: TShadowItem.Destroy with LCLRefCount>0. Hint: Maybe the 
>> component is processing an event?
>> Thread 1 "lazarus" received signal SIGSEGV, Segmentation fault.
>> 0x0000000000000000 in ?? ()
>> (gdb) bt
>> #0  0x0000000000000000 in ?? ()
>> #1  0x00000000009fd6f2 in SETSELECTEDSHADOW (this=0x7fffe02077b0, 
>> PREVSELECTEDITEM=0x7fffe37107c0, CURSELECTEDITEM=0x7fffe03c1e80, 
>> VIADESIGNER=false)
>>     at ../designer/menueditor.pp:1663
>> #2  0x00000000009fd49d in SETSELECTEDMENUITEM (this=0x7fffe02077b0, 
>> AMI=0x7fffe03c1e80, VIADESIGNER=false, PREVWASDELETED=false)
>>     at ../designer/menueditor.pp:1617
>> #3  0x0000000000a02673 in MOUSEDOWN (this=0x7fffe9371e10, 
>> BUTTON=MBLEFT, SHIFT=8, X=73, Y=8) at ../designer/menueditor.pp:2590
>> #4  0x00000000005b29f8 in DOMOUSEDOWN (this=0x7fffe9371e10, 
>> MESSAGE=..., BUTTON=MBLEFT, SHIFT=0) at include/control.inc:2242
>> #5  0x00000000005b2e61 in WMLBUTTONDOWN (this=0x7fffe9371e10, 
>> MESSAGE=...) at include/control.inc:2375
>> #6  0x0000000000436562 in DISPATCH (this=0x7fffe9371e10, MESSAGE=0) at 
>> ../inc/objpas.inc:602
>> #7  0x00000000005b28fd in WNDPROC (this=0x7fffe9371e10, 
>> THEMESSAGE=...) at include/control.inc:2202
>> #8  0x00000000005a580c in WNDPROC (this=0x7fffe9371e10, MESSAGE=...) 
>> at include/wincontrol.inc:5396
>> #9  0x00000000007722ac in DELIVERMESSAGE (TARGET=0x7fffe9371e10, 
>> AMESSAGE=0) at lclmessageglue.pas:112
>> #10 0x000000000066c191 in DELIVERMESSAGE (TARGET=0x7fffe9371e10, 
>> AMESSAGE=0) at gtk2/gtk2proc.inc:3702
>> #11 0x000000000067aec6 in DELIVERMOUSEDOWNMESSAGE (WIDGET=0x3aced90, 
>> EVENT=0x3624ea0, AWINCONTROL=0x7fffe9371e10) at 
>> gtk2/gtk2callback.inc:2137
>> #12 0x000000000067a5c8 in GTKMOUSEBTNPRESS (WIDGET=0x32d2b80, 
>> EVENT=0x3624ea0, DATA=0x7fffe9371e10) at gtk2/gtk2callback.inc:1899
>> #13 0x00007ffff6c8cafc in ?? () from 
>> /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
>> #14 0x00007ffff6916fa5 in g_closure_invoke () from 
>> /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
>> #15 0x00007ffff6928fc1 in ?? () from 
>> /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
>> #16 0x00007ffff69317f9 in g_signal_emit_valist () from 
>> /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
>> #17 0x00007ffff693208f in g_signal_emit () from 
>> /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
>> #18 0x00007ffff6da48cc in ?? () from 
>> /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
>> #19 0x00007ffff6c8b294 in gtk_propagate_event () from 
>> /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
>> #20 0x00007ffff6c8b64b in gtk_main_do_event () from 
>> /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
>> #21 0x00007ffff775bc4c in ?? () from 
>> /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
>> #22 0x00007ffff6640197 in g_main_context_dispatch () from 
>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>> #23 0x00007ffff66403f0 in ?? () from 
>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>> #24 0x00007ffff664049c in g_main_context_iteration () from 
>> /lib/x86_64-linux-gnu/libglib-2.0.so.0
>> #25 0x00000000004fc6ec in APPPROCESSMESSAGES (this=0x7ffff7f75230) at 
>> gtk2/gtk2widgetset.inc:2338
>> #26 0x000000000049435d in HANDLEMESSAGE (this=0x7ffff7f74bf0) at 
>> include/application.inc:1276
>> #27 0x00000000004948ac in RUNLOOP (this=0x7ffff7f74bf0) at 
>> include/application.inc:1413
>> #28 0x00000000006585a6 in APPRUN (this=0x7ffff7f75230, ALOOP=...) at 
>> include/interfacebase.inc:54
>> #29 0x0000000000494850 in RUN (this=0x7ffff7f74bf0) at 
>> include/application.inc:1401
>> #30 0x0000000000420127 in main () at lazarus.pp:145
>> (gdb) cont
>> Continuing.
>> TApplication.HandleException Access violation
>>   Stack trace:
>>   $0000000000000000
>>   $00000000009FD49D line 1617 of ../designer/menueditor.pp
>>   $0000000000A02673 line 2590 of ../designer/menueditor.pp
>>   $00000000005B29F8 line 2242 of include/control.inc
>>   $00000000005B2E61 line 2375 of include/control.inc
>>   $0000000000436562 line 602 of ../inc/objpas.inc
>>   $00000000005B28FD line 2202 of include/control.inc
>>   $00000000005A580C line 5396 of include/wincontrol.inc
>>   $00000000007722AC line 112 of lclmessageglue.pas
>>   $000000000066C191 line 3702 of gtk2/gtk2proc.inc
>>   $000000000067AEC6 line 2137 of gtk2/gtk2callback.inc
>>   $000000000067A5C8 line 1899 of gtk2/gtk2callback.inc
>>   $00007FFFF6C8CAFC
>
> As I've made some bug fixes for the Menueditor last time, I tried to 
> reproduce this error. Till now I wasn't able to reproduce it on Lazarus 
> Trunk revision 54826 with FPC 3.0.2 on Windows 7, 10, OpenSuse 42.2 KDE 
> GTK2 or Linux Mint 17.3 KDE GTK2. I currently install on a VM a 64bit 
> Linux Mint 18.1 Cinnamon (your OS?!), to test the issue there.

OK. 
It seems clear to me that something is being freed which should not yet be
freed:

>> WARNING: TShadowItem.Destroy with LCLRefCount>0. Hint: Maybe the 
>> component is processing an event?

This indicates to me that an unforeseen order of events is happening ?
As far as I know, there is a global call to free components once the 
message processing is finished ?

Well, I hope you can reproduce it...

Michael.


More information about the Lazarus mailing list