anchor.diff:  end;
   
   procedure TRawCPUBreakpoint.Disable;
  -begin
  -  fTarget.WriteMem(fProcID, fAddr, CPUCode.BreakPointSize, buf);
  +var
  +  res : INteger;
  +begin
  +  res:=fTarget.WriteMem(fProcID, fAddr, length(buf), buf);
     SetLength(buf,0);
   end;
   
  
positive.code: 
  function TDbgThread.SetThreadRegs(Registers: TDbgDataList): Boolean; 
  begin
    Result:=DbgTarget.GetThreadRegs(fOwner.ID, fID, Registers);
  end;
  
  function TDbgThread.NextSingleStep: Boolean; 
  
negative.code:     property Process[i: Integer]: TDbgProcess read GetProcess;
    end;
    
  // utility function
  function SetThreadExecAddr(athread: TDbgThread; const Addr: TDbgPtr): Boolean;
  
  implementation
  
  function SetThreadExecAddr(athread: TDbgThread; const Addr: TDbgPtr): Boolean;
  var
    datalist  : TDbgDataBytesList;
  begin
    datalist:=TDbgDataBytesList.Create;
    try
      Result:=Assigned(athread) and (athread.GetThreadRegs(datalist));
      if Result then begin
        datalist.Reg[CPUCode.ExecuteRegisterName].DbgPtr:=Addr;
        Result:=athread.SetThreadRegs(datalist);
      end;
    finally
      datalist.Free;
    end;
  end;
  
  type
    { TMemAccessObject }
  