mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-01 18:43:41 +02:00
45 lines
1001 B
ObjectPascal
45 lines
1001 B
ObjectPascal
unit FpDbgCallContextInfo;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
DbgIntfBaseTypes,
|
|
FpDbgInfo,
|
|
FpdMemoryTools,
|
|
FpDbgDwarfDataClasses,
|
|
FpDbgDwarf;
|
|
|
|
type
|
|
{ TFpDbgInfoCallContext }
|
|
|
|
TFpDbgInfoCallContext = class(TFpDbgAbstractCallContext)
|
|
public
|
|
function CreateParamSymbol(AParamIndex: Integer; ASymbol: TFpSymbol): TFpValue; override;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TFpDbgInfoCallContext }
|
|
|
|
function TFpDbgInfoCallContext.CreateParamSymbol(AParamIndex: Integer; ASymbol: TFpSymbol): TFpValue;
|
|
var
|
|
ParameterMemLocation: TFpDbgMemLocation;
|
|
TypeSymbol: TFpSymbol;
|
|
ParamSymbol: TFpSymbolDwarfFunctionResult;
|
|
begin
|
|
ParameterMemLocation := RegisterLoc(5);
|
|
TypeSymbol := ASymbol.TypeInfo;
|
|
ParamSymbol := TFpSymbolDwarfFunctionResult.Create(ASymbol.Name, TDbgDwarfSymbolBase(ASymbol).InformationEntry, TypeSymbol.Kind, ParameterMemLocation);
|
|
try
|
|
Result := ParamSymbol.Value;
|
|
finally
|
|
ParamSymbol.ReleaseReference;
|
|
end;
|
|
TFpValueDwarf(Result).Context := Self;
|
|
end;
|
|
|
|
end.
|
|
|