[fpc-devel] Unfortunately still an issue .... [[Re: fpc trunk / parentfp for debugger / missing]]

Martin Frb lazarus at mfriebe.de
Wed Aug 19 20:23:22 CEST 2020


On 22/06/2020 18:36, Jonas Maebe wrote:
> On 21/06/2020 22:07, Yuriy Sydorov wrote:
>>> It may also be also broken with FPC's code generator, but simply not get
>>> detected at compile time.
>> Fixed.
> Thanks!
>

Just tested with 3.3.1 from 17.08.2020.

There are still cases where it goes wrong. (tested on win 64 / with -O- 
and -O1)
components\lazdebuggers\lazdebugtestbase\testapps\WatchesScopePrg.lpi

FuncFooNestedTwice and FuncFooNestedTwice2
Both do not actually access any variables from the parent.

The value for parentfp is passed in register rcx
And the debug info, correctly says that it is in that register.

This also works fine, if stopped at the first line (after "begin") in 
either of those 2 procedures.
But stepping through the procedure
    "Result := 'abc2';"
uses rcx
and the value is lost.

---------------
when compiling with -al  neither procedure has
# Var $parentfp located at rbp-16, size=OS_64
because the variable is not stored.

Best regards
Martin


More information about the fpc-devel mailing list