[fpc-devel] Proof of Concept ARC implementation

Sven Barth pascaldragon at googlemail.com
Fri Oct 31 15:33:59 CET 2014


Am 30.10.2014 11:01 schrieb "hinstance at yandex.ru" <hinstance at yandex.ru>:
>
> I managed to acquire some additional information on Lazarus 1.3 + FPC ARC
edition problem
>
> First of all, I tested if Lazarus 1.3 trunk compiled with FPC trunk works
correctly. It does.
>
> However, Lazarus 1.3 trunk with FPC ARC crashes.
>
> Lazarus trunk by FreePascal trunk -> OK
> Lazarus trunk by FreePascal ARC edition -> CRASH at startup
>
> here is the point where it crashes:
>
> D:\FPC_ARC\L>lazarus.exe
> using config file D:\FPC_ARC\L\lazarus.cfg
> [FORMS.PP] ExceptionOccurred
>   Sender=Exception
>   Exception=GetVMTVirtualMethodOffset Parent Virtual Method not found
>   Stack trace:
>   $00710C16  GETVMTVIRTUALMETHODOFFSET,  line 458 of
D:/FPC_ARC/L/designer/jitforms.pp
>   $00710D21  GETTCOMPONENTVALIDATERENAMEVMTOFFSET,  line 497 of
D:/FPC_ARC/L/designer/jitforms.pp
>   $00714F18  JITFORMS_$$_init,  line 2094 of
D:/FPC_ARC/L/designer/jitforms.pp
>   $00410F54
> TApplication.HandleException GetVMTVirtualMethodOffset Parent Virtual
Method not found
>   Stack trace:
>   $00710C16  GETVMTVIRTUALMETHODOFFSET,  line 458 of
D:/FPC_ARC/L/designer/jitforms.pp
>   $00710D21  GETTCOMPONENTVALIDATERENAMEVMTOFFSET,  line 497 of
D:/FPC_ARC/L/designer/jitforms.pp
>   $00714F18  JITFORMS_$$_init,  line 2094 of
D:/FPC_ARC/L/designer/jitforms.pp
>   $00410F54
> Exception at 00710C16: Exception:
> GetVMTVirtualMethodOffset Parent Virtual Method not found.
>
> Even if line numbers are slightly different, you can easily find the
place where exception is raised: in jitforms.pp: in procedure
GetVMTVirtualMethodOffset: raise
Exception.Create('GetVMTVirtualMethodOffset Parent Virtual Method not
found');
>
> I leave the decision if this worth investigating or not to you as I am
myself not sure. Not that I could possibly force someone to look into it
even if I insisted.

The VMT has changed in my branch. Take a look at the declaration of TVmt in
rtl/inc/objpash.inc and maybe adjust the code to use the offset of the
first virtual method instead of hardcoding it...

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20141031/5f286210/attachment.html>


More information about the fpc-devel mailing list