[coroutine] For RUNNING coroutines -1 is the correct number

This commit is contained in:
Vladimir Ilmov
2020-01-21 16:06:17 +01:00
parent aa48f2e363
commit cc317d7548
2 changed files with 3 additions and 3 deletions
@@ -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)
@@ -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