On 2026-02-20 13:02, Graeme Geldenhuys via fpc-devel wrote:
On 2026-02-20 01:31, Graeme Geldenhuys via fpc-devel wrote:
Hi Graeme,
More soon. ;-)
What is it? A fully working, native FPC debug format and debugger. I
designed
a new debug format from scratch (ditching the very C-centric DWARF
format and
its many versions) and added support into FPC `main` (3.3.1) via a
feature
branch. That's all on the compiler side.
On the client side, I implemented a debug engine from scratch along
with
a reference CLI debugger client (seen in my previous message). For the
engine,
I used a Hexagonal design (aka Ports & Adapters). This means the debug
engine
does all the heavy lifting and exposes methods that the thin "debug
client"
(in my case, the CLI debugger) can simply call to display output and
orchestrate
user interaction.
Integrating this into Lazarus IDE or MSEide simply means implementing
the equivalent
`pdr-cli` [thin] layer. Nothing needs to be changed in the debug engine
itself.
I'll reveal more soon with a Pull Request. I'll include links to my
analysis,
the OPDF specification, and Implementation Architecture documents. A
huge
amount of research has gone into this -- studying Kylix, Delphi, and
DWARF.
Finally, I've scratched that 14-year itch I had, triggered by the duby
release. :)
It's certainly very interesting. :-) Obviously, it will be necessary to
understand, what that means for binaries including e.g. object files
written in C, where / how is the debug information stored (having it
inside the binaries implies support for that in various linkers), etc.
Looking forward to seeing what and how you did there. :-)
Have a nice weekend
Tomas
_______________________________________________
fpc-devel maillist - [email protected]
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel