mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 02:59:21 +02:00
Debugger: introduce watch type skFunctionRef
git-svn-id: trunk@61520 -
This commit is contained in:
parent
fa7ee1a8bb
commit
9f1b5ca3f2
@ -32,6 +32,8 @@ type
|
|||||||
skUnit, // contains syms defined in this unit
|
skUnit, // contains syms defined in this unit
|
||||||
skProcedure, // an actual procedure, with an address // NOT just the type of a procedure
|
skProcedure, // an actual procedure, with an address // NOT just the type of a procedure
|
||||||
skFunction,
|
skFunction,
|
||||||
|
skProcedureRef, // a variable containing (a reference to a) procedure (some debuggers may return skProcedure)
|
||||||
|
skFunctionRef,
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
//----------------- Basic types, these cannot have references or children
|
//----------------- Basic types, these cannot have references or children
|
||||||
skSimple, // Any of the below (in this group), the dbg does not know more detailed
|
skSimple, // Any of the below (in this group), the dbg does not know more detailed
|
||||||
|
@ -116,6 +116,8 @@ begin
|
|||||||
skInterface: ;
|
skInterface: ;
|
||||||
skProcedure: ;
|
skProcedure: ;
|
||||||
skFunction: ;
|
skFunction: ;
|
||||||
|
skProcedureRef: ;
|
||||||
|
skFunctionRef: ;
|
||||||
skArray: ;
|
skArray: ;
|
||||||
// skPointer: svfOrdinal, svfCardinal, svfDataAddress are all the same value
|
// skPointer: svfOrdinal, svfCardinal, svfDataAddress are all the same value
|
||||||
skPointer: ExpFlags(AVal, [svfOrdinal, svfCardinal, svfDataAddress, svfSizeOfPointer], [svfMembers, svfIdentifier]);
|
skPointer: ExpFlags(AVal, [svfOrdinal, svfCardinal, svfDataAddress, svfSizeOfPointer], [svfMembers, svfIdentifier]);
|
||||||
|
@ -647,10 +647,10 @@ begin
|
|||||||
FGridData.Cells[0,k]:=fld.ClassName;
|
FGridData.Cells[0,k]:=fld.ClassName;
|
||||||
FGridData.Cells[4,k]:=FieldLocationNames[fld.Location];
|
FGridData.Cells[4,k]:=FieldLocationNames[fld.Location];
|
||||||
end;
|
end;
|
||||||
skProcedure:
|
skProcedure,skProcedureRef:
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
skFunction:
|
skFunction,skFunctionRef:
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
skPointer:
|
skPointer:
|
||||||
@ -675,7 +675,7 @@ begin
|
|||||||
k:=0;
|
k:=0;
|
||||||
for j := 0 to FDBGInfo.Fields.Count-1 do begin
|
for j := 0 to FDBGInfo.Fields.Count-1 do begin
|
||||||
case FDBGInfo.Fields[j].DBGType.Kind of
|
case FDBGInfo.Fields[j].DBGType.Kind of
|
||||||
skProcedure,skFunction: inc(k);
|
skProcedure,skFunction,skProcedureRef, skFunctionRef: inc(k);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
k:=k+1;
|
k:=k+1;
|
||||||
@ -684,7 +684,7 @@ begin
|
|||||||
k:=0;
|
k:=0;
|
||||||
for j := 0 to FDBGInfo.Fields.Count-1 do begin
|
for j := 0 to FDBGInfo.Fields.Count-1 do begin
|
||||||
case FDBGInfo.Fields[j].DBGType.Kind of
|
case FDBGInfo.Fields[j].DBGType.Kind of
|
||||||
skProcedure:
|
skProcedure, skProcedureRef:
|
||||||
begin
|
begin
|
||||||
inc(k);
|
inc(k);
|
||||||
FGridMethods.Cells[0,k]:=FDBGInfo.Fields[j].Name;
|
FGridMethods.Cells[0,k]:=FDBGInfo.Fields[j].Name;
|
||||||
@ -696,7 +696,7 @@ begin
|
|||||||
FGridMethods.Cells[2,k]:='';
|
FGridMethods.Cells[2,k]:='';
|
||||||
FGridMethods.Cells[3,k]:='???';
|
FGridMethods.Cells[3,k]:='???';
|
||||||
end;
|
end;
|
||||||
skFunction:
|
skFunction, skFunctionRef:
|
||||||
begin
|
begin
|
||||||
inc(k);
|
inc(k);
|
||||||
FGridMethods.Cells[0,k]:=FDBGInfo.Fields[j].Name;
|
FGridMethods.Cells[0,k]:=FDBGInfo.Fields[j].Name;
|
||||||
@ -874,8 +874,8 @@ begin
|
|||||||
skVariant: InspectVariant();
|
skVariant: InspectVariant();
|
||||||
skEnum: InspectEnum;
|
skEnum: InspectEnum;
|
||||||
skSet: InspectSet;
|
skSet: InspectSet;
|
||||||
skProcedure: InspectSimple;
|
skProcedure, skProcedureRef: InspectSimple;
|
||||||
skFunction: InspectSimple;
|
skFunction, skFunctionRef: InspectSimple;
|
||||||
skSimple,
|
skSimple,
|
||||||
skInteger,
|
skInteger,
|
||||||
skCardinal, skBoolean, skChar, skFloat: InspectSimple();
|
skCardinal, skBoolean, skChar, skFloat: InspectSimple();
|
||||||
|
@ -800,7 +800,7 @@ begin
|
|||||||
else
|
else
|
||||||
InspectMemo.Append(t.Fields[i].Name + ': ' + t.Fields[i].DBGType.Value.AsString);
|
InspectMemo.Append(t.Fields[i].Name + ': ' + t.Fields[i].DBGType.Value.AsString);
|
||||||
end;
|
end;
|
||||||
skProcedure, skFunction: ;
|
skProcedure, skFunction, skProcedureRef, skFunctionRef: ;
|
||||||
else
|
else
|
||||||
InspectMemo.Append(t.Fields[i].Name + ': ' + t.Fields[i].DBGType.Value.AsString);
|
InspectMemo.Append(t.Fields[i].Name + ': ' + t.Fields[i].DBGType.Value.AsString);
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user