[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:
$004EED89
$004EF8BD
$0040BF3B
$004EEBDC
$004ED988
$004E532F
$004E644E
$00567767
$0050D695
$7E418734
$7E418816
$7E4189CD
$7E418A10
$00510E34
$00421DB9
$004221AF
$0043B473
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);
var
P: TPoint;
begin
if not (csNoStdEvents in ControlStyle) then
with Message do
begin
if (Button in [mbLeft, mbRight]) and DragManager.IsDragging then
begin
P := ClientToScreen(Point(XPos, YPos));
DragManager.MouseUp(Button, KeysToShiftState(Keys), P.X, P.Y);
Message.Result := 1;
end;
MouseUp(Button, KeysToShiftState(Keys), XPos, YPos); <----
end;
end;
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);
begin
if Assigned(ALoop) then ALoop;
end;
However I have no information for these strange addresses in the middle
of the stack:
$7E418734
$7E418816
$7E4189CD
$7E418A10
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?
TIA
Bye
--
Luca Olivetti
Wetron Automation Technology http://www.wetron.es
Tel. +34 935883004 (Ext.133) Fax +34 935883007
More information about the Lazarus
mailing list