On 13 Aug 2010, at 14:52, Graeme Geldenhuys wrote:
Op 2010-08-13 14:46, Jonas Maebe het geskryf:
Programming them in Pascal code that is linked into the target
program
moreover has the advantage that GDB (or any other debugger, even one
Do you have any web link on how to do this, or a small single case
example
that could be built on to? I don't mind working on this, I just don't
really know how or what is required - and thus where to start.
{ the "export" is so the compiler uses C-style name mangling, which is
required to get predictable function names in the machine code }
function debugger_compare_ansistr(const a1,a2: ansistring): longint;
cdecl; export;
begin
result:=SysUtils.AnsiCompareStr(a1,a2);
end;
procedure debugger_assign_ansistr(var dest: ansistring; const src:
ansistring); cdecl; export;
begin
dest:=src;
end;
...
Create such routines for any operation on any type that GDB cannot
handle directly (assigning, comparing, printing, modifying, ...). You
can probably even add support for properties via RTTI lookups this way.
One main rule I can think of: parameters of automated types *must* all
be either "var" or "const" parameters (because otherwise the caller
side has to call special routines prior to invoking the helper, which
the debugger won't do).
After this unit is implemented, debugger frontends will obviously
still need to get support for calling these helpers whenever they
detect that types are involved in expressions.
Jonas
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel