Fpdebug: display more values

git-svn-id: trunk@47131 -
This commit is contained in:
martin 2014-12-07 22:25:24 +00:00
parent 136a5214a6
commit bb622e5b7b

View File

@ -461,7 +461,7 @@ function TFpPascalPrettyPrinter.InternalPrintValue(out APrintedValue: String;
Result := ''; Result := '';
end; end;
procedure DoPointer; procedure DoPointer(AnAddress: boolean);
var var
s: String; s: String;
v: QWord; v: QWord;
@ -473,20 +473,23 @@ function TFpPascalPrettyPrinter.InternalPrintValue(out APrintedValue: String;
else else
s := ''; s := '';
if AnAddress then
v := AValue.Address.Address
else
v := AValue.AsCardinal;
if (ppvCreateDbgType in AFlags) then begin if (ppvCreateDbgType in AFlags) then begin
ADBGTypeInfo^ := TDBGType.Create(skPointer, s); ADBGTypeInfo^ := TDBGType.Create(skPointer, s);
ADBGTypeInfo^.Value.AsPointer := Pointer(AValue.AsCardinal); // TODO: no cut off ADBGTypeInfo^.Value.AsPointer := Pointer(v); // TODO: no cut off
end; end;
v := AValue.AsCardinal;
case ADisplayFormat of case ADisplayFormat of
wdfDecimal, wdfUnsigned: APrintedValue := IntToStr(AValue.AsCardinal); wdfDecimal, wdfUnsigned: APrintedValue := IntToStr(v);
wdfHex: APrintedValue := '$'+IntToHex(AValue.AsCardinal, AnAddressSize*2); wdfHex: APrintedValue := '$'+IntToHex(v, AnAddressSize*2);
else begin //wdfPointer/Default ; else begin //wdfPointer/Default ;
if v = 0 then if v = 0 then
APrintedValue := 'nil' APrintedValue := 'nil'
else else
APrintedValue := '$'+IntToHex(AValue.AsCardinal, AnAddressSize*2); APrintedValue := '$'+IntToHex(v, AnAddressSize*2);
end; end;
end; end;
@ -861,7 +864,7 @@ begin
skUnit: ; skUnit: ;
skProcedure: ; skProcedure: ;
skFunction: ; skFunction: ;
skPointer: DoPointer; skPointer: DoPointer(False);
skInteger: DoInt; skInteger: DoInt;
skCardinal: DoCardinal; skCardinal: DoCardinal;
skBoolean: DoBool; skBoolean: DoBool;
@ -880,6 +883,7 @@ begin
skClass: DoStructure; skClass: DoStructure;
skInterface: ; skInterface: ;
skArray: DoArray; skArray: DoArray;
skNone: DoPointer(true);
end; end;
if (ADBGTypeInfo <> nil) and (ADBGTypeInfo^ <> nil) then if (ADBGTypeInfo <> nil) and (ADBGTypeInfo^ <> nil) then