From 6c28d25214584b656e028e86606638ef6bc30280 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Fri, 28 Feb 2025 20:46:10 +0000 Subject: [PATCH] GP-5394: Fix issue evaluating watches when no thread (on previous coords) --- .../app/plugin/core/debug/gui/watch/DefaultWatchRow.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/watch/DefaultWatchRow.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/watch/DefaultWatchRow.java index be32095d51..9d316dbeb9 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/watch/DefaultWatchRow.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/watch/DefaultWatchRow.java @@ -133,7 +133,14 @@ public class DefaultWatchRow implements WatchRow { } // Do not accidentally hang the Swing thread on evaluation WatchValue fullValue = compiled.evaluate(executor); - byte[] prevValue = prevExec == null ? null : compiled.evaluate(prevExec); + byte[] prevValue; + try { + prevValue = prevExec == null ? null : compiled.evaluate(prevExec); + } + catch (Exception e) { + Msg.trace(this, "Error in evaluating previous value. Ignoring.", e); + prevValue = null; + } synchronized (lock) { if (executor != provider.asyncWatchExecutor) { return;