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

Reply via email to