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 6327e8576c5..33fbe28382a 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,8 +90,9 @@ class AsyncStackTraceContext( val instance = invokeGetStackTraceElement(continuation) ?: return null val className = context.invokeMethodAsString(instance, "getClassName") ?: return null val methodName = context.invokeMethodAsString(instance, "getMethodName") ?: return null - // should add a check for SUSPEND coroutines - val lineNumber = context.invokeMethodAsInt(instance,"getLineNumber") ?: 0 + val lineNumber = context.invokeMethodAsInt(instance,"getLineNumber")?.takeIf { + it >= 0 + } ?: return null val locationClass = context.findClassSafe(className) ?: return null 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 96381843d6e..dd14a8a3f05 100644 --- a/idea/jvm-debugger/jvm-debugger-test/testData/asyncStackTrace/asyncLambdas.out +++ b/idea/jvm-debugger/jvm-debugger-test/testData/asyncStackTrace/asyncLambdas.out @@ -3,7 +3,6 @@ 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