mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 20:59:08 +02:00
FpDebugger (pure): TFpSymbolContext.GetSizeOfAddress now returns 8 for 64-bit debuggees
git-svn-id: trunk@46163 -
This commit is contained in:
parent
bee90dd030
commit
9616a4ffe4
@ -23,6 +23,7 @@ type
|
|||||||
TFpSymbolContext = class(TFpDbgInfoContext)
|
TFpSymbolContext = class(TFpDbgInfoContext)
|
||||||
private
|
private
|
||||||
FFpSymbolInfo: TFpSymbolInfo;
|
FFpSymbolInfo: TFpSymbolInfo;
|
||||||
|
FSizeOfAddress: integer;
|
||||||
protected
|
protected
|
||||||
function GetAddress: TDbgPtr; override;
|
function GetAddress: TDbgPtr; override;
|
||||||
function GetStackFrame: Integer; override;
|
function GetStackFrame: Integer; override;
|
||||||
@ -39,6 +40,7 @@ type
|
|||||||
private
|
private
|
||||||
FSymbolList: TfpSymbolList;
|
FSymbolList: TfpSymbolList;
|
||||||
FContext: TFpSymbolContext;
|
FContext: TFpSymbolContext;
|
||||||
|
FImage64Bit: boolean;
|
||||||
public
|
public
|
||||||
constructor Create(ALoader: TDbgImageLoader); override;
|
constructor Create(ALoader: TDbgImageLoader); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -47,6 +49,7 @@ type
|
|||||||
function FindSymbol(AAddress: TDbgPtr): TFpDbgSymbol; override;
|
function FindSymbol(AAddress: TDbgPtr): TFpDbgSymbol; override;
|
||||||
function FindSymbol(const AName: String): TFpDbgSymbol; override;
|
function FindSymbol(const AName: String): TFpDbgSymbol; override;
|
||||||
function GetLineAddress(const AFileName: String; ALine: Cardinal): TDbgPtr; override;
|
function GetLineAddress(const AFileName: String; ALine: Cardinal): TDbgPtr; override;
|
||||||
|
property Image64Bit: boolean read FImage64Bit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -70,13 +73,17 @@ end;
|
|||||||
|
|
||||||
function TFpSymbolContext.GetSizeOfAddress: Integer;
|
function TFpSymbolContext.GetSizeOfAddress: Integer;
|
||||||
begin
|
begin
|
||||||
result := 4;
|
result := FSizeOfAddress;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TFpSymbolContext.Create(AFpSymbolInfo: TFpSymbolInfo);
|
constructor TFpSymbolContext.Create(AFpSymbolInfo: TFpSymbolInfo);
|
||||||
begin
|
begin
|
||||||
inherited create;
|
inherited create;
|
||||||
FFpSymbolInfo:=AFpSymbolInfo;
|
FFpSymbolInfo:=AFpSymbolInfo;
|
||||||
|
if AFpSymbolInfo.Image64Bit then
|
||||||
|
FSizeOfAddress:=8
|
||||||
|
else
|
||||||
|
FSizeOfAddress:=4;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TFpSymbolContext.FindSymbol(const AName: String): TFpDbgValue;
|
function TFpSymbolContext.FindSymbol(const AName: String): TFpDbgValue;
|
||||||
@ -105,6 +112,7 @@ begin
|
|||||||
|
|
||||||
FSymbolList := TfpSymbolList.Create;
|
FSymbolList := TfpSymbolList.Create;
|
||||||
ALoader.ParseSymbolTable(FSymbolList);
|
ALoader.ParseSymbolTable(FSymbolList);
|
||||||
|
FImage64Bit := ALoader.Image64Bit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TFpSymbolInfo.Destroy;
|
destructor TFpSymbolInfo.Destroy;
|
||||||
|
Loading…
Reference in New Issue
Block a user