diff --git a/debugger/callstackdlg.pp b/debugger/callstackdlg.pp index d2cd7cd9c6..a5074cfcfb 100644 --- a/debugger/callstackdlg.pp +++ b/debugger/callstackdlg.pp @@ -300,6 +300,9 @@ begin MaxCnt := FViewStart + FViewLimit + 1; if CStack <> nil then CStack.CountLimited(MaxCnt); // trigger the update-notification, if executed immediately FInUpdateView := False; + // TODO: must make CStack ref-counted + if CStack <> GetSelectedCallstack then exit; // Something changed, maybe debugger stopped + if (CStack = nil) or ((Snap <> nil) and (CStack.CountLimited(MaxCnt) = 0)) then begin lvCallStack.Items.Clear; @@ -346,6 +349,8 @@ begin FInUpdateView := True; CStack.PrepareRange(First, Count); + // TODO: must make CStack ref-counted + if CStack <> GetSelectedCallstack then exit; // Something changed, maybe debugger stopped FInUpdateView := False; for n := 0 to Count - 1 do begin diff --git a/debugger/debugger.pp b/debugger/debugger.pp index b712f977e0..da7fc17e3b 100644 --- a/debugger/debugger.pp +++ b/debugger/debugger.pp @@ -5354,7 +5354,7 @@ begin FPreparing := True; while ACount > 0 do begin - Entries[AIndex]; + Entries[AIndex]; // Request unknown entries: will set LowesUnknown / HighesUnknown inc(AIndex); dec(ACount); end;