diff --git a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/proxy/AsyncStackTraceContext.kt b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/proxy/AsyncStackTraceContext.kt index 7e4466176ac..b84f20ad54a 100644 --- a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/proxy/AsyncStackTraceContext.kt +++ b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/proxy/AsyncStackTraceContext.kt @@ -90,9 +90,8 @@ class AsyncStackTraceContext( val instance = invokeGetStackTraceElement(continuation) ?: return null val className = context.invokeMethodAsString(instance, "getClassName") ?: return null val methodName = context.invokeMethodAsString(instance, "getMethodName") ?: return null - val lineNumber = context.invokeMethodAsInt(instance,"getLineNumber")?.takeIf { - it >= 0 - } ?: return null + // should add a check for SUSPEND coroutines + val lineNumber = context.invokeMethodAsInt(instance,"getLineNumber") ?: 0 val locationClass = context.findClassSafe(className) ?: return null log.warn("Got location of ${className}.${methodName}:${lineNumber} in ${locationClass}") return GeneratedLocation(context.debugProcess, locationClass, methodName, lineNumber) diff --git a/idea/jvm-debugger/jvm-debugger-test/testData/asyncStackTrace/asyncLambdas.out b/idea/jvm-debugger/jvm-debugger-test/testData/asyncStackTrace/asyncLambdas.out index dd14a8a3f05..96381843d6e 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/asyncStackTrace/asyncLambdas.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/asyncStackTrace/asyncLambdas.out @@ -3,6 +3,7 @@ Run Java Connected to the target VM asyncLambdas.kt:19 Async stack trace: + asyncLambdas.AsyncLambdasKt$baz$1:-1 asyncLambdas.AsyncLambdasKt$bar$1:14 b = 3 asyncLambdas.AsyncLambdasKt$foo$1:9