mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-16 02:40:36 +01:00
FpDebug: array (1 dimension): DW_AT_byte_stride
git-svn-id: trunk@44918 -
This commit is contained in:
parent
8804674487
commit
5acc0236ce
@ -4196,13 +4196,22 @@ begin
|
||||
if didtStrideRead in FDwarfArrayReadFlags then
|
||||
exit;
|
||||
Include(FDwarfArrayReadFlags, didtStrideRead);
|
||||
if not InformationEntry.ReadValue(DW_AT_bit_stride, FStrideInBits) then begin
|
||||
t := NestedTypeInfo;
|
||||
if t = nil then
|
||||
FStrideInBits := 0
|
||||
else
|
||||
FStrideInBits := t.Size * 8;
|
||||
if InformationEntry.ReadValue(DW_AT_bit_stride, FStrideInBits) then
|
||||
exit;
|
||||
|
||||
CreateMembers; // TODO Can we get here without that already done?
|
||||
if (FMembers.Count > 0) and // TODO: stride for diff member
|
||||
(TDbgDwarfSymbolBase(FMembers[0]).InformationEntry.ReadValue(DW_AT_byte_stride, FStrideInBits))
|
||||
then begin
|
||||
FStrideInBits := FStrideInBits * 8;
|
||||
exit;
|
||||
end;
|
||||
|
||||
t := NestedTypeInfo;
|
||||
if t = nil then
|
||||
FStrideInBits := 0 // TODO error
|
||||
else
|
||||
FStrideInBits := t.Size * 8;
|
||||
end;
|
||||
|
||||
procedure TFpDwarfSymbolTypeArray.ReadOrdering;
|
||||
@ -4284,7 +4293,7 @@ var
|
||||
begin
|
||||
assert((AValObject is TFpDwarfValueArray), 'TFpDwarfSymbolTypeArray.GetMemberAddress AValObject');
|
||||
ReadOrdering;
|
||||
ReadStride;
|
||||
ReadStride; // TODO Stride per member (member = dimension/index)
|
||||
Result := InvalidLoc;
|
||||
if (FStrideInBits <= 0) or (FStrideInBits mod 8 <> 0) then
|
||||
exit;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user