anchor.diff:      property isEnabled: Boolean read fEnabled;
     end;
   
  -  { TDbgProcess }
   
     TDbgProcess  = class(TObject)
     private
  
positive.code: 
  constructor TDbgProcess.Create(AOwner: TDbgMain; AProcessID: TDbgProcessID); 
  var
    i     : Integer;
    thrid : TDbgThreadID;
  begin
    inherited Create;
    
    fOwner:=AOwner;
    fID := AProcessID;
    fThreads:=TList.Create;
    fBreaks:=TList.Create;
  
    {filling existing threads}
    for i:=0 to DbgTarget.GetThreadsCount(fID) - 1 do begin
      thrid:=DbgTarget.GetThreadID(fID, i);
      AddThread(thrid);
    end;
  end;
  
negative.code:     fState    : TDbgProcessState;
      fBreaks   : TList;
    protected
      function    DbgTarget: TDbgTarget;
      procedure   AddThread(threadid: TDbgThreadID);
      procedure   RemoveThread(threadid: TDbgThreadID);
      function    GetThread(i: Integer): TDbgThread;
      function    GetThreadsCount: Integer;
      function    FindBreakpoint(Addr: TDbgPtr; Forced: Boolean): TDbgBreakpoint;
      procedure   UninstallBreaks(Addr, Count: TDbgPtr; BPList: TFPList);
      procedure   ReinstallBreaks(Addr, Count: TDbgPtr; BPList: TFPList);
      procedure   HandleBreakpointEvent(const Event: TDbgEvent; var StartedSingleStep: Boolean);
      procedure   HandleManualStep(const Event: TDbgEvent; var ReportToUser: Boolean);
    public
      constructor Create(AOwner: TDbgMain; AProcessID: TDbgProcessID);
      destructor  Destroy; override;
      function    FindThread(AThreadid: TDbgThreadID): TDbgThread;
      function    ReadMem(Offset: TDbgPtr; Count: Integer; var Data: array of byte): Integer;
      function    WriteMem(Offset: TDbgPtr; Count: Integer; const Data: array of byte): Integer;
      function    EnableBreakpoint(const Addr: TDbgPtr): Boolean;
      procedure   DisableBreakpoint(const Addr: TDbgPtr);
      function    isBreakpointEnabled(const Addr: TDbgPtr): Boolean;
      function    AddBreakHandler(const Addr: TDbgPtr; Handler: TDbgHandlerEvent): Boolean;
      procedure   RemoveBreakHandler(const Addr: TDbgPtr; Handler: TDbgHandlerEvent);
      procedure   Suspend;
      procedure   Resume;
      property    ID: TDbgProcessID read fID;
      property    State: TDbgProcessState read fState;
      property    ThreadsCount: Integer read GetThreadsCount;
      property    Thread[i: Integer]: TDbgThread read GetThread;
    end;
  
  
    TMemAccessEvent = procedure (Proc: TDbgProcessID; var Data: array of byte; Offset: TDbgPtr; Count: Integer) of object;
    
  