Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2011-04

Strange EAccessViolation

2 messages · 1 person · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

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

Reply by email

Luca Olivetti
to Luca Olivetti

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

Show quoted text 65 lines
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.

Show quoted text 9 lines
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

Reply by email