In general Terms:
The fpd example project is and will be for the use with Pascal.
Pascal/Language agnostic commands can be based on gdb syntax.E.g
However, gdb has some input forms that I would prefer not to burden on new users.
That should use the extended to match the idea from
https://sourceware.org/gdb/current/onlinedocs/gdb/Explicit-Locations.html#Explicit-Locations(lldb afaik also use -options)
break -function func -cond a=10
(or quotes, if there must be spaces)
Also interactive querying should be optional (i.e "fpd --iact" to enable)
https://sourceware.org/gdb/current/onlinedocs/gdb/Ambiguous-Expressions.html#Ambiguous-ExpressionsIdeally the "command interpreter" is kept exchangeable. So different ones can be used. Then the default can be moderate, and the user can load a command set: "fpd --cmd=foo"
As for none Pascal:
The entire core of FpDebug is language agnostic. It is Dwarf2, and parts of Dwarf3 and more Dwarf to come.
The core has an optional extension, to detect FPC generated info, and to "fix" fpc oddities.
Pascal happens in 2 places, and both are plug-able, each just one unit:
- the parser
- the printer
Shipping a parser/printer for C would not be a problem. It would hardly take much space, and using/compiling it could be entirely optional "$IFDEF".
The pascal parser also is a bit lenient. It does for example accept 0xabc123. This token can not appear in Pascal, and it therefore is clear what the user wanted.