records within records can generate a bad displacement in the debugger symbol table.

This commit is contained in:
Kelvin Sherlock 2018-03-15 23:09:05 -04:00
parent cf72a073f8
commit 2805ff6877

View File

@ -799,7 +799,7 @@ var
tp1^.next := tpList; tp1^.next := tpList;
tpList := tp1; tpList := tp1;
tp1^.tp := tp; tp1^.tp := tp;
tp1^.disp := symLength; tp1^.disp := symLength - 12;
end; {else} end; {else}
end; {GetTypeDisp} end; {GetTypeDisp}
@ -1059,6 +1059,7 @@ var
if sym^.idtype <> nil then if sym^.idtype <> nil then
if sym^.idtype^.form in if sym^.idtype^.form in
[scalar,subrange,pointerStruct,arrays,records,objects] then begin [scalar,subrange,pointerStruct,arrays,records,objects] then begin
symLength := symLength+12; {update length of symbol table}
WriteName(sym); {write the name field} WriteName(sym); {write the name field}
WriteAddress(sym); {write the address field} WriteAddress(sym); {write the address field}
case sym^.idtype^.form of case sym^.idtype^.form of
@ -1086,7 +1087,6 @@ var
end; {else} end; {else}
end; end;
end; {case} end; {case}
symLength := symLength+12; {update length of symbol table}
end; {if} end; {if}
if sym^.rlink <> nil then if sym^.rlink <> nil then