[Lazarus] Strange EAccessViolation

Luca Olivetti luca at wetron.es
Mon Apr 11 17:36:57 CEST 2011

Today I have been reported a crash in an application and they sent me 
the stack trace it captured:

11/04/2011 16:09:11  EAccessViolation Access violation
   Stack trace:

Address $004EED89 corresponds to this procedure in control.inc (I marked 
the line with "<----" but I'm not sure the access violation happens 
there or in the line before).

        TControl DoMouseUp  "Event Handler"
procedure TControl.DoMouseUp(var Message: TLMMouse; Button: TMouseButton);
   P: TPoint;
   if not (csNoStdEvents in ControlStyle) then
     with Message do
       if (Button in [mbLeft, mbRight]) and DragManager.IsDragging then
         P := ClientToScreen(Point(XPos, YPos));
         DragManager.MouseUp(Button, KeysToShiftState(Keys), P.X, P.Y);
         Message.Result := 1;
       MouseUp(Button, KeysToShiftState(Keys), XPos, YPos); <----

The rest of addresses are all in the LCL, leading to this call, starting 
from $0043B473 which is this procedure in interfacebase.inc:

procedure TWidgetSet.AppRun(const ALoop: TApplicationMainLoop);
   if Assigned(ALoop) then ALoop;

However I have no information for these strange addresses in the middle 
of the stack:


Apart from these addresses, everything else doesn't touch my code, so I 
think that, maybe, it's a bug in the LCL (considering that's quite an 
old version, Lazarus 0.9.29 r22953 FPC 2.2.4 i386-win32-win32/win64, 
however it has served me fine in various other projects).
What do you think?

Luca Olivetti
Wetron Automation Technology http://www.wetron.es
Tel. +34 935883004 (Ext.133)  Fax +34 935883007

More information about the Lazarus mailing list