On 29/09/2020 17:49, Bo Berglund via lazarus wrote:
When I reach this breakpoint and I hover the mouse over Body.Text or
Body.Count Lazarus shows a message saying:

Body.Text = Type TSTRINGS has no component named TEXT
and
Body.Count = Type TSTRINGS has no component named COUNT

What is that?

Its a property, and calls a getter function.

The debugger can not yet call any functions. So you can't inspect that property.

It goes a step further, FPC whilst compiling does not actually add debug info for this property either. The dwarf standard (at least 2 or 3, need to check the higher ones) does not include the ability to describe properties. (and not sure, but stabs does probably neither, if it does fpc still does not use it)


Is there some setting I am missing to enable inspection of these kinds
of data?

Unfortunately not....

Joost started working on extending fpdebug to do function calls. But its not yet available. (I did see it "working" for functions that 1: take no arguments 2: return basic types like integer only, 3: do not raise exceptions or errors 4: do not have user set breakpoints in the code while being called ....)

And there are more issues up the road.
- AFAIK: Calling a function that returns a string (GetText) needs a hidden var param in which the result will be returned. - Getting a string back, will cause a mem leak, unless the debugger can get enough info to decrement the strings reference

So there is a lot of work ahead
- Getting function calls to work in generic
- fpc to add debug info for such properties (potentially via custom extensions to the dwarf standard) - fpc to add debug info for managed types (custom extensions to the dwarf standard)

--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to