On 12/09/2011 11:10, Graeme Geldenhuys wrote:
Here is what I would consider a "debugger":
- command line interface at least
- watches
since lazarus displays watches, using gdb, maybe this should be more
specific?
- Yes, certain expressions are not supported, or not well supported.
-- strings: 0 vs 1 base => need to test with stabs 3 => need to adapt
some part of Lazarus to deal with gdb output when using stabs3
-- properties: discussed before
-- dyn-arrays: lazarus deals with simple cases, but by far not with all
-- please add?
- breakpoints
- expression handling with break points would be very handy.
eg: break when i = 1234
Lazarus does support conditional expressions. And they do work, I have
used them
- watchpoints. break when data at memory address changed. Very
handy to debug those procedural programs that loves to use global
variables. MSEide supports this (but it is actually a GDB feature)
Yes indeed.
Btw, i have used them a few times in Lazarus. they are on the todo list
Though to use them in Lazarus, quite a few hacks are required.
The big issue, is that gdb often scopes them wrong, and you loose the
watch point before you it triggers
- querying variables, properties, arrays, strings. Irrespective if
things like variables are local, global, or if parameters are from
a nested function, method, event handler. Querying properties of
a class instance (like can be done in Delphi for years) is very
important (irrespective of the "potential" dangers in that).
That is a repeat of "watches" ?
- Object Pascal expression evaluation (but I guess this goes
hand-in-hand with Watches and Breakpoints.
Yes I know there are many other items than can be added (thread
debugging, remote debugging etc), but I would consider the above
features a "usable debugger" with FPC.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel