From fdd031994d6b0906abd376f0cbe3430fa95181a6 Mon Sep 17 00:00:00 2001 From: Maksim Zuev Date: Fri, 30 Jan 2026 17:44:33 +0100 Subject: [PATCH] [debugger] IDEA-385376 Reset VM on reattach GitOrigin-RevId: 67e896d747527092b8e16664c0645efbbccd5bb1 --- .../src/com/intellij/debugger/engine/DebugProcessImpl.java | 3 +++ .../com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index 5bf7430ac611..94ed70a4ac20 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -1065,6 +1065,9 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb } catch (Throwable ignored) { } + finally { + DebuggerManagerThreadImpl.getCurrentThread().setVmProxy(null); + } } var attachedNewThread = unstashAndReattach(); diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt b/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt index cb12a1a65537..e22c784cb3fa 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt @@ -61,9 +61,9 @@ class DebuggerManagerThreadImpl @ApiStatus.Internal constructor( get() = _vmProxy.get() @ApiStatus.Internal - fun setVmProxy(proxy: VirtualMachineProxyImpl) { + fun setVmProxy(proxy: VirtualMachineProxyImpl?) { val current = vmProxy - if (current != null && current.virtualMachine !== proxy.virtualMachine) { + if (current != null && proxy != null && current.virtualMachine !== proxy.virtualMachine) { LOG.error("VM proxy changed from $current to $proxy") } _vmProxy = WeakReference(proxy)