From 24e9f48caa6aa1f09c4c7b8994b5920b50e38471 Mon Sep 17 00:00:00 2001 From: Martin Date: Sat, 4 Feb 2023 16:02:24 +0100 Subject: [PATCH] IdeDebugger: Watches, fix handling old "TDBGType" for expanding arrays --- ide/packages/idedebugger/watchesdlg.pp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ide/packages/idedebugger/watchesdlg.pp b/ide/packages/idedebugger/watchesdlg.pp index 365b8457d6..4173127783 100644 --- a/ide/packages/idedebugger/watchesdlg.pp +++ b/ide/packages/idedebugger/watchesdlg.pp @@ -1448,6 +1448,7 @@ var ExistingNode, nd: PVirtualNode; ChildInfo: TWatchResultDataFieldInfo; AnchClass: String; + IsGdbmiArray: Boolean; begin ChildCount := 0; @@ -1500,12 +1501,16 @@ begin AWatch := AWatchValue.Watch; if (TypInfo <> nil) and (TypInfo.Fields <> nil) then begin + IsGdbmiArray := TypInfo.Attributes * [saDynArray, saArray] <> []; ChildCount := TypInfo.Fields.Count; ExistingNode := tvWatches.GetFirstChildNoInit(VNode); AnchClass := TypInfo.TypeName; for i := 0 to TypInfo.Fields.Count-1 do begin - NewWatch := AWatchValue.ChildrenByNameAsField[TypInfo.Fields[i].Name, AnchClass]; + if IsGdbmiArray then + NewWatch := AWatchValue.ChildrenByNameAsArrayEntry[StrToInt64Def(TypInfo.Fields[i].Name, 0)] + else + NewWatch := AWatchValue.ChildrenByNameAsField[TypInfo.Fields[i].Name, AnchClass]; if NewWatch = nil then begin dec(ChildCount); continue;