[fpc-devel] properties with getter evaluation in gdb

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Mar 12 15:49:37 CET 2010


On 12 Mar 2010, at 02:44, Paul Ishenin wrote:

> I know at the moment we have the next problems which cause subj  
> don't work:
>
> 1. gdb does not supports borland fastcall calling convention (delphi  
> calls it register though)
> 2. fpc does not write debug info for properties with getters because  
> of point 1.

There's more:
a) DWARF debug information does not know the concept of properties  
(and I have not seen a proposal for adding it yet on the DWARF mailing  
list or website), only of fields and of methods (so you'd have to add  
these properties as methods -- in which case probably only getters can  
be supported)
b) there is no support yet in the GDB Pascal parser to call methods  
(at least not via instance.methodname; there may be other ways to call  
them, but I don't know how)

I only have a hack for b) currently, because it makes accessing fields  
case-sensitive in GDB's Pascal mode (which means you have to type all  
fields names in uppercase).

> Let's see what properties getters we can have:
> 1. Majority of them are
>  function GetSomething: SomeType;
> 2. Others are:
>  function GetSomethingWithIndex(const Index1, ..., IndexN:  
> SomeType): SomeType;
>
> Looking at first type of functions I see that there are no arguments  
> passed to the function. So maybe these functions could be marked  
> with some other calling convention which is similar to fastcall  
> regards result return? Maybe 'pascal' or 'stdcall' could be used for  
> such functions?

The default calling convention could be used. This would only work for  
routines with "simple" return types though (types that are not  
returned via a hidden first parameter).


Jonas



More information about the fpc-devel mailing list