From 0f2c5ea302b7774270d13f3e15a5d5efc2ae6384 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 9 Jul 2024 19:53:28 +0200 Subject: [PATCH] GdbmiDebugger: don't try to evaluate non-existing registers from cache (if target CPU was changed) --- components/lazdebuggergdbmi/gdbmidebugger.pp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/lazdebuggergdbmi/gdbmidebugger.pp b/components/lazdebuggergdbmi/gdbmidebugger.pp index 1a8158a786..61f513f1d8 100644 --- a/components/lazdebuggergdbmi/gdbmidebugger.pp +++ b/components/lazdebuggergdbmi/gdbmidebugger.pp @@ -2082,6 +2082,9 @@ begin FreeAndNil(List); end; + for i := 0 to Length(FGDBMIRegSupplier.FRegNamesCache) - 1 do + if FRegisters.EntriesByName[FGDBMIRegSupplier.FRegNamesCache[i]].DataValidity = ddsUnknown then + FRegisters.EntriesByName[FGDBMIRegSupplier.FRegNamesCache[i]].DataValidity := ddsRequested; if FRegisters.DataValidity = ddsRequested then begin ChangedRegList := nil; @@ -2111,7 +2114,7 @@ begin // check for individual updates / displayformat for i := 0 to FRegisters.Count - 1 do begin - if not FRegisters[i].HasValue then + if (not FRegisters[i].HasValue) and (FRegisters[i].DataValidity = ddsRequested) then UpdateFormat(FRegisters[i].DisplayFormat); end; finally