about debugger

Florian Klaempfl Florian.Klaempfl at gmx.de
Sat Apr 14 06:35:52 EDT 2001


At 12:16 14.04.01 +0200, you wrote:
>Florian Klaempfl wrote:
> >
> > Even more, I think we should think about a common interface to libgdb
> > with some helper classes, i.e. that the non visual part is common
> > for all IDEs.
>
>Yes
>
>
> > I know the classes/objects thing is a problem but
> > maybe we can solve it.
>
>We know about the class/object issue for almost 2 years, but I still
>don't know why it is a problem at all? Is mixing both OOP models in a
>single app really a problem?

Mixing both OOP models isn't a problem but e.g. streaming is a problem.

 From ide\text\fpdebug.pas:

  PBreakpoint=^TBreakpoint;
  TBreakpoint=object(TObject)
     typ  : BreakpointType;
     state : BreakpointState;
     owner : PBreakpointCollection;
     Name : PString;  { either function name or expr to watch }
     FileName : PString;
     OldValue,CurrentValue : Pstring;
     Line : Longint; { only used for bt_file_line type }
     Conditions : PString; { conditions relative to that breakpoint }
     IgnoreCount : Longint; { how many counts should be ignored }
     Commands : pchar; { commands that should be executed on breakpoint }
     GDBIndex : longint;
     GDBState : BreakpointState;
     constructor Init_function(Const AFunc : String);
     constructor Init_Empty;
     constructor Init_file_line(AFile : String; ALine : longint);
     constructor Init_type(atyp : BreakpointType;Const AnExpr : String);
     constructor Load(var S: TStream);
                         ^
TBreakpoint depends on the TV streaming. This is necessary because
the breakpoints are stored in the desktop file. But using TV streaming
in Lazarus is nonsense.






More information about the Lazarus mailing list