diff --git a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt index 539468d21f9..00172f19465 100644 --- a/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt +++ b/idea/jvm-debugger/jvm-debugger-core/src/org/jetbrains/kotlin/idea/debugger/KotlinStackFrame.kt @@ -45,13 +45,13 @@ import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.codegen.AsmUtil.THIS import org.jetbrains.kotlin.codegen.DESTRUCTURED_LAMBDA_ARGUMENT_VARIABLE_PREFIX import org.jetbrains.kotlin.codegen.coroutines.CONTINUATION_VARIABLE_NAME +import org.jetbrains.kotlin.codegen.coroutines.SUSPEND_FUNCTION_CONTINUATION_PARAMETER import org.jetbrains.kotlin.codegen.inline.INLINE_FUN_VAR_SUFFIX import org.jetbrains.kotlin.codegen.inline.isFakeLocalVariableForInline import org.jetbrains.org.objectweb.asm.Type as AsmType import org.jetbrains.kotlin.utils.getSafe import java.lang.reflect.Modifier import java.util.* -import kotlin.coroutines.Continuation class KotlinStackFrame(frame: StackFrameProxyImpl) : JavaStackFrame(StackFrameDescriptorImpl(frame, MethodsTracker()), true) { private companion object { @@ -305,6 +305,7 @@ class KotlinStackFrame(frame: StackFrameProxyImpl) : JavaStackFrame(StackFrameDe || name.startsWith(AsmUtil.LOCAL_FUNCTION_VARIABLE_PREFIX) || getInlineDepth(variable.name()) != inlineDepth || name == CONTINUATION_VARIABLE_NAME + || name == SUSPEND_FUNCTION_CONTINUATION_PARAMETER } private fun LocalVariableProxyImpl.remapVariableNameIfNeeded(): LocalVariableProxyImpl { diff --git a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.kt b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.kt index 179e40208c7..1673225350b 100644 --- a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.kt +++ b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.kt @@ -11,5 +11,8 @@ private suspend fun foo() { val a = 5 } +// SHOW_KOTLIN_VARIABLES +// PRINT_FRAME + // EXPRESSION: coroutineContext // RESULT: instance of kotlin.coroutines.EmptyCoroutineContext(id=ID): Lkotlin/coroutines/EmptyCoroutineContext; \ No newline at end of file diff --git a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.out b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.out index feb66ec3860..813221ab180 100644 --- a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.out +++ b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/coroutineContextWithoutSuspend.out @@ -3,6 +3,7 @@ Run Java Connected to the target VM coroutineContextWithoutSuspend.kt:11 Compile bytecode for coroutineContext + frame = foo:11, CoroutineContextWithoutSuspendKt {coroutineContextWithoutSuspend} Disconnected from the target VM Process finished with exit code 0 diff --git a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/suspendContinuation.out b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/suspendContinuation.out index f3d04681aa3..956f6fd2cf6 100644 --- a/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/suspendContinuation.out +++ b/idea/testData/debugger/tinyApp/src/evaluate/singleBreakpoint/frame/suspendContinuation.out @@ -4,15 +4,6 @@ Connected to the target VM suspendContinuation.kt:7 Compile bytecode for a frame = main:7, SuspendContinuationKt {suspendContinuation} - local = $completion: kotlin.coroutines.Continuation = {kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1@uniqueID}Continuation at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1 (sp = null) - field = label: int = 1 (sp = null) - field = $completion: kotlin.coroutines.Continuation = {kotlin.coroutines.jvm.internal.RunSuspend@uniqueID} (sp = null) - field = result: kotlin.Result = null (sp = RunSuspend.!EXT!) - field = $this_createCoroutineUnintercepted$inlined: kotlin.jvm.functions.Function1 = {suspendContinuation.SuspendContinuationKt$$$main@uniqueID}interface kotlin.jvm.functions.Function1 (sp = null) - field = args: java.lang.String[] = {java.lang.String[0]@uniqueID} (sp = null) - field = arity: int = 1 (sp = Lambda.!EXT!) - field = completion: kotlin.coroutines.Continuation = {kotlin.coroutines.jvm.internal.RunSuspend@uniqueID} (sp = BaseContinuationImpl.!EXT!) - field = result: kotlin.Result = null (sp = RunSuspend.!EXT!) local = $result: java.lang.Object = null (sp = null) local = a: int = 5 (sp = suspendContinuation.kt, 4) Disconnected from the target VM