From 9e807ebb89ccc6146bd0979d729b6b809547455f Mon Sep 17 00:00:00 2001 From: Vladimir Ilmov Date: Sun, 24 May 2020 13:07:36 +0200 Subject: [PATCH] (CoroutineDebugger) Prevent navigation to internalCompiledFiles #KT-39143 fixed --- .../view/XDebuggerTreeSelectedNodeListener.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/view/XDebuggerTreeSelectedNodeListener.kt b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/view/XDebuggerTreeSelectedNodeListener.kt index ea713b51eda..3c9db185f2b 100644 --- a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/view/XDebuggerTreeSelectedNodeListener.kt +++ b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/view/XDebuggerTreeSelectedNodeListener.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.idea.debugger.coroutine.data.* import org.jetbrains.kotlin.idea.debugger.coroutine.proxy.invokeLater import org.jetbrains.kotlin.idea.debugger.coroutine.util.suspendContextImpl import org.jetbrains.kotlin.idea.debugger.invokeInManagerThread +import org.jetbrains.kotlin.idea.decompiler.classFile.isKotlinInternalCompiledFile import java.awt.event.KeyAdapter import java.awt.event.KeyEvent import java.awt.event.MouseEvent @@ -70,10 +71,15 @@ class XDebuggerTreeSelectedNodeListener(val session: XDebugSession, val tree: XD return false } - fun setCurrentStackFrame(executionStack: XExecutionStack, stackFrame: XStackFrame) = - invokeLater(tree) { - session.setCurrentStackFrame(executionStack, stackFrame, false) + fun setCurrentStackFrame(executionStack: XExecutionStack, stackFrame: XStackFrame) { + val fileToNavigate = stackFrame.sourcePosition?.file ?: return + val isKotlinInternalCompiledFile = isKotlinInternalCompiledFile(fileToNavigate) + if (!isKotlinInternalCompiledFile) { + invokeLater(tree) { + session.setCurrentStackFrame(executionStack, stackFrame, false) + } } + } } fun createExecutionStack(threadReference: ThreadReferenceProxyImpl, debugProcess: DebugProcessImpl): JavaExecutionStack? =