[Lazarus] Strange EAccessViolation

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[Lazarus] Strange EAccessViolation

Luca Olivetti
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

--
_______________________________________________
Lazarus mailing list
[hidden email]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
Reply | Threaded
Open this post in threaded view
|

Re: [Lazarus] Strange EAccessViolation

Luca Olivetti
Al 11/04/2011 17:36, En/na Luca Olivetti ha escrit:

> 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

Googling for these addresses it seems they are windows' dlls.

>
> 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

--
_______________________________________________
Lazarus mailing list
[hidden email]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus