mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-05 21:18:27 +02:00
FPDebug: conditional usage of windows unit / updates following fpdebug
git-svn-id: trunk@44026 -
This commit is contained in:
parent
556a243e8e
commit
abbd5a45d1
@ -9,7 +9,7 @@ unit FpGdbmiDebugger;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, windows, sysutils, math, FpDbgInfo, FpDbgClasses, GDBMIDebugger, BaseDebugManager,
|
Classes, {$IFdef MSWindows}windows,{$ENDIF} sysutils, math, FpdMemoryTools, FpDbgInfo, FpDbgClasses, GDBMIDebugger, BaseDebugManager,
|
||||||
Debugger, GDBMIMiscClasses, GDBTypeInfo, maps, LCLProc, Forms, FpDbgLoader, FpDbgDwarf,
|
Debugger, GDBMIMiscClasses, GDBTypeInfo, maps, LCLProc, Forms, FpDbgLoader, FpDbgDwarf,
|
||||||
FpDbgDwarfConst, LazLoggerBase, LazLoggerProfiling, FpPascalParser, FpPascalBuilder;
|
FpDbgDwarfConst, LazLoggerBase, LazLoggerProfiling, FpPascalParser, FpPascalBuilder;
|
||||||
|
|
||||||
@ -27,9 +27,10 @@ type
|
|||||||
FDebugger: TFpGDBMIDebugger;
|
FDebugger: TFpGDBMIDebugger;
|
||||||
public
|
public
|
||||||
constructor Create(ADebugger: TFpGDBMIDebugger);
|
constructor Create(ADebugger: TFpGDBMIDebugger);
|
||||||
function ReadMemory(AnAddress: FpDbgInfo.TDbgPtr; ASize: Cardinal; ADest: Pointer): Boolean; override;
|
function ReadMemory(AnAddress: FpdMemoryTools.TDbgPtr; ASize: Cardinal; ADest: Pointer): Boolean; override;
|
||||||
function ReadMemoryEx(AnAddress, AnAddressSpace: FpDbgInfo.TDbgPtr; ASize: Cardinal; ADest: Pointer): Boolean; override;
|
function ReadMemoryEx(AnAddress, AnAddressSpace: FpdMemoryTools.TDbgPtr; ASize: Cardinal; ADest: Pointer): Boolean; override;
|
||||||
function ReadRegister(ARegNum: Integer; out AValue: FpDbgInfo.TDbgPtr): Boolean; override;
|
function ReadRegister(ARegNum: Cardinal; out AValue: FpdMemoryTools.TDbgPtr): Boolean; override;
|
||||||
|
function RegisterSize(ARegNum: Cardinal): Integer; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TFpGDBMIAndWin32DbgMemReader }
|
{ TFpGDBMIAndWin32DbgMemReader }
|
||||||
@ -39,8 +40,8 @@ type
|
|||||||
hProcess: THandle;
|
hProcess: THandle;
|
||||||
public
|
public
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
function ReadMemory(AnAddress: FpDbgInfo.TDbgPtr; ASize: Cardinal; ADest: Pointer): Boolean; override;
|
function ReadMemory(AnAddress: FpdMemoryTools.TDbgPtr; ASize: Cardinal; ADest: Pointer): Boolean; override;
|
||||||
//function ReadRegister(ARegNum: Integer; out AValue: FpDbgInfo.TDbgPtr): Boolean; override;
|
//function ReadRegister(ARegNum: Integer; out AValue: TDbgPtr): Boolean; override;
|
||||||
procedure OpenProcess(APid: Cardinal);
|
procedure OpenProcess(APid: Cardinal);
|
||||||
procedure CloseProcess;
|
procedure CloseProcess;
|
||||||
end;
|
end;
|
||||||
@ -146,7 +147,7 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TFpGDBMIAndWin32DbgMemReader.ReadMemory(AnAddress: FpDbgInfo.TDbgPtr;
|
function TFpGDBMIAndWin32DbgMemReader.ReadMemory(AnAddress: FpdMemoryTools.TDbgPtr;
|
||||||
ASize: Cardinal; ADest: Pointer): Boolean;
|
ASize: Cardinal; ADest: Pointer): Boolean;
|
||||||
var
|
var
|
||||||
BytesRead: Cardinal;
|
BytesRead: Cardinal;
|
||||||
@ -190,7 +191,7 @@ end;
|
|||||||
|
|
||||||
type TGDBMIDebuggerCommandHack = class(TGDBMIDebuggerCommand) end;
|
type TGDBMIDebuggerCommandHack = class(TGDBMIDebuggerCommand) end;
|
||||||
|
|
||||||
function TFpGDBMIDbgMemReader.ReadMemory(AnAddress: FpDbgInfo.TDbgPtr; ASize: Cardinal;
|
function TFpGDBMIDbgMemReader.ReadMemory(AnAddress: FpdMemoryTools.TDbgPtr; ASize: Cardinal;
|
||||||
ADest: Pointer): Boolean;
|
ADest: Pointer): Boolean;
|
||||||
var
|
var
|
||||||
cmd: TGDBMIDebuggerCommandHack;
|
cmd: TGDBMIDebuggerCommandHack;
|
||||||
@ -221,14 +222,14 @@ begin
|
|||||||
debugln(['TFpGDBMIDbgMemReader.ReadMemory ', dbgs(AnAddress), ' ', dbgMemRange(ADest, ASize)]);
|
debugln(['TFpGDBMIDbgMemReader.ReadMemory ', dbgs(AnAddress), ' ', dbgMemRange(ADest, ASize)]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TFpGDBMIDbgMemReader.ReadMemoryEx(AnAddress, AnAddressSpace: FpDbgInfo.TDbgPtr;
|
function TFpGDBMIDbgMemReader.ReadMemoryEx(AnAddress, AnAddressSpace: FpdMemoryTools.TDbgPtr;
|
||||||
ASize: Cardinal; ADest: Pointer): Boolean;
|
ASize: Cardinal; ADest: Pointer): Boolean;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TFpGDBMIDbgMemReader.ReadRegister(ARegNum: Integer; out
|
function TFpGDBMIDbgMemReader.ReadRegister(ARegNum: Cardinal; out
|
||||||
AValue: FpDbgInfo.TDbgPtr): Boolean;
|
AValue: FpdMemoryTools.TDbgPtr): Boolean;
|
||||||
var
|
var
|
||||||
rname: String;
|
rname: String;
|
||||||
v: String;
|
v: String;
|
||||||
@ -264,6 +265,11 @@ debugln(['TFpGDBMIDbgMemReader.ReadRegister ',rname, ' ', v]);
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TFpGDBMIDbgMemReader.RegisterSize(ARegNum: Cardinal): Integer;
|
||||||
|
begin
|
||||||
|
Result := 4; // for the very few supported...
|
||||||
|
end;
|
||||||
|
|
||||||
{ TFpGDBPTypeRequestCache }
|
{ TFpGDBPTypeRequestCache }
|
||||||
|
|
||||||
constructor TFpGDBPTypeRequestCache.Create(ADebugger: TFpGDBMIDebugger);
|
constructor TFpGDBPTypeRequestCache.Create(ADebugger: TFpGDBMIDebugger);
|
||||||
|
Loading…
Reference in New Issue
Block a user