Forum > Lazarus

FpDebug 1.0

<< < (2/9) > >>

BlueIcaro:
Thanks!!!.
One question. This debug supports remote debuging?

/Blueicaro

Martin_fr:

--- Quote from: BlueIcaro on June 25, 2021, 06:41:08 pm ---Thanks!!!.
One question. This debug supports remote debuging?

--- End quote ---

No. For that gdb is still part of the installer.

If you need that on a per project base, then you can set a debugger per project.

Also
=> FpDebug is only for Intel/AMD. (And only Linux/Win)
=> If you run on ARM, then you need gdb.

There is no work on extending that yet (also it is on the "would be nice" list)

(
Well there is some contributed work going on for an avr version of it https://github.com/ccrause/lazarus
I have to check the state of it in Lazarus trunk
)

Max V. Terentiev:
Can new debugger evaluate properties with getters/setters ? This is very long awaited feature )

Martin_fr:

--- Quote from: Max V. Terentiev on June 27, 2021, 11:12:22 am ---Can new debugger evaluate properties with getters/setters ? This is very long awaited feature )

--- End quote ---
Not, yet.

But, first progress in this direction has actually been made. Joost added "function calling in watches" (so a lot of functions currently are not avail for calling).
Afaik, Joost is now also looking into adding the requirements to the compiler.

The problem with properties has always been many fold.

The debugger can only access data, that the compiler provides in the debug info.
At current properties are not included in this. The compiler doesn't put the info in there.

To make it worse, the debug info format, does not even provide an official format for that.
But it allows to add proprietary data.

(Afaik) Joost is now working on adding such proprietary data.
So when he is done, that goes into the (then to be) next major fpc release.

Since FpDebug has function calling (though that needs to tested, and likely improved / but it is there), once Fpc writes the data, it will work.

Calling function in watches.

*** This is new and not much tested / If it crashes, report it. But do not complain about your IDE taking the current session to the grave ***

Must be enabled, in global debugger settings.
Must be enabled per watch.

Works only for
- plain functions (not methods)
- methods, if and only if, their function body (the actual code) is in the same unit, as the declaration of the variable holding the instance you are inspecting
  var a: TMyList // in unit42
  watch: a.GetBar();   // "function TMyList.GetBar()" must be declared and implemented in unit42
                            // if "a" is global, then your "current execution line" can be anywhere else
- must be called using ()
- must return an ordinal type (no strings yet)
- takes either no arguments, or only 2 or 3 arguments max (depends on OS)
- all arguments must be ordinal types

As I said, this is all very new. It's not yet indented for real use. But it is progress. There is actual work on the issue now.

piola:

--- Quote from: Max V. Terentiev on June 27, 2021, 11:12:22 am ---Can new debugger evaluate properties with getters/setters ? This is very long awaited feature )

--- End quote ---

Just a side question out of curiosity: Does Delphi support that?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version