The last days then I debugged with FPDebug and I noticed that in some data structures I could not read out the values while this worked with GDB. I also got crashes with GDB in the past, but not often. For me the info about the actual values is more important that I will stay a while now with GDB.
Do you have examples for the missing fields?
(and your OS / and which debug info type)
I know of the following (some only from having been told...)
- "file of FOO"
If (and only if) compiled with stabs, then a lot of details (like the file handle) will be visible.
Since it is stabs, it is gdb only.
- variant (and maybe records with "case" section)
FpDebug does not show the data, if dwarf-3 is used. Should work with Dwarf-2.
- type foo = interface
does not work, because there is no data in the interface (and the debug info does not contain anything about it => so not debugger specific)
- mode delphi - automatic dereferencing
Type foo = ^record a: integer; end;
I have no idea if (by mere accident) "FooData.a" will work in gdb. (Since gdb itself has issues with getting Pascal data with (hidden) pointers in some cases, the IDE does a lot of trickery to get the data => it might just solve this, without intend / never tested)
FpDebug will not resolve "FooData.a" => there is a {$DEFINE } that can be set to compile the IDE, and then it will work.
Also make sure that packages are compiled with Dwarf. They are often set to automatic. Afaik that only matters for some 32bit targets, on 64 bit major targets the fpc default should be dwarf anyway.