anchor.diff:    Result := Size;
   end;
   
  -function ReadProcMemUser(pid: Integer; Offset: TDbgPtr; Size: Integer; var Data: array of Byte): Integer;
  +function ReadProcMemUser(pid: TDbgProcessID; Offset: TDbgPtr; Size: Integer; var Data: array of Byte
  +  ): Integer;
   var
     i   : Integer;
     w   : array [0..sizeof(TPtraceWord)-1] of byte;
  
positive.code:   end;
  end;
  
  function SetSingleStepx86_64(pid: Integer; isEnabled: Boolean): Boolean;
  begin
    { TODO : Implement 64-bit Linux single stepping - EXPERIMENTAL }
    Result := ptraceSingleStep(pid);
  end;
  
  function ReadRegsx64(pid: Integer; regs: TDbgDataList): Boolean;
  var
    regs64  : user_64;
    res     : Integer;
  
negative.code: 
  { i386 }
  
  function ReadUser32(pid: TDbgProcessID; var data: user_32): Boolean;
  function WriteUser32(pid: TDbgProcessID; const data: user_32): Boolean;
  function ReadRegsi386(pid: TDbgProcessID; regs: TDbgDataList): Boolean;
  function WriteRegsi386(pid: TDbgProcessID; regs: TDbgDataList): Boolean;
  function ReadRegEIP(pid: Integer; var CPUState: TCPUState): Boolean;
  
  { x86_64 (amd64) }
  
  function ReadRegsx64(pid: TDbgProcessID; regs: TDbgDataList): Boolean;
  function WriteRegsx64(pid: TDbgProcessID; regs: TDbgDataList): Boolean;
  function ReadRegRIP(pid: TDbgProcessID; var CPUState: TCPUState): Boolean;
  
  var
    GetExecInstrAddr: function(pid: TDbgProcessID; var State: TCPUState): Boolean = nil;
    EnableSingleStep: function(pid: TDbgProcessID; EnableSingleStep: Boolean): Boolean = nil;
    SoftBreakSize   : Integer;
  
  implementation
  