Debugger: introduce watch type skFunctionRef

git-svn-id: trunk@61520 -
This commit is contained in:
martin 2019-07-03 18:26:31 +00:00
parent fa7ee1a8bb
commit 9f1b5ca3f2
4 changed files with 12 additions and 8 deletions

View File

@ -32,6 +32,8 @@ type
skUnit, // contains syms defined in this unit
skProcedure, // an actual procedure, with an address // NOT just the type of a procedure
skFunction,
skProcedureRef, // a variable containing (a reference to a) procedure (some debuggers may return skProcedure)
skFunctionRef,
//--------------------------------------------------------------------------
//----------------- Basic types, these cannot have references or children
skSimple, // Any of the below (in this group), the dbg does not know more detailed

View File

@ -116,6 +116,8 @@ begin
skInterface: ;
skProcedure: ;
skFunction: ;
skProcedureRef: ;
skFunctionRef: ;
skArray: ;
// skPointer: svfOrdinal, svfCardinal, svfDataAddress are all the same value
skPointer: ExpFlags(AVal, [svfOrdinal, svfCardinal, svfDataAddress, svfSizeOfPointer], [svfMembers, svfIdentifier]);

View File

@ -647,10 +647,10 @@ begin
FGridData.Cells[0,k]:=fld.ClassName;
FGridData.Cells[4,k]:=FieldLocationNames[fld.Location];
end;
skProcedure:
skProcedure,skProcedureRef:
begin
end;
skFunction:
skFunction,skFunctionRef:
begin
end;
skPointer:
@ -675,7 +675,7 @@ begin
k:=0;
for j := 0 to FDBGInfo.Fields.Count-1 do begin
case FDBGInfo.Fields[j].DBGType.Kind of
skProcedure,skFunction: inc(k);
skProcedure,skFunction,skProcedureRef, skFunctionRef: inc(k);
end;
end;
k:=k+1;
@ -684,7 +684,7 @@ begin
k:=0;
for j := 0 to FDBGInfo.Fields.Count-1 do begin
case FDBGInfo.Fields[j].DBGType.Kind of
skProcedure:
skProcedure, skProcedureRef:
begin
inc(k);
FGridMethods.Cells[0,k]:=FDBGInfo.Fields[j].Name;
@ -696,7 +696,7 @@ begin
FGridMethods.Cells[2,k]:='';
FGridMethods.Cells[3,k]:='???';
end;
skFunction:
skFunction, skFunctionRef:
begin
inc(k);
FGridMethods.Cells[0,k]:=FDBGInfo.Fields[j].Name;
@ -874,8 +874,8 @@ begin
skVariant: InspectVariant();
skEnum: InspectEnum;
skSet: InspectSet;
skProcedure: InspectSimple;
skFunction: InspectSimple;
skProcedure, skProcedureRef: InspectSimple;
skFunction, skFunctionRef: InspectSimple;
skSimple,
skInteger,
skCardinal, skBoolean, skChar, skFloat: InspectSimple();

View File

@ -800,7 +800,7 @@ begin
else
InspectMemo.Append(t.Fields[i].Name + ': ' + t.Fields[i].DBGType.Value.AsString);
end;
skProcedure, skFunction: ;
skProcedure, skFunction, skProcedureRef, skFunctionRef: ;
else
InspectMemo.Append(t.Fields[i].Name + ': ' + t.Fields[i].DBGType.Value.AsString);
end;