Replace 'visibleVariablesByName()' calls with a safe implementation
This commit is contained in:
+1
-1
@@ -91,7 +91,7 @@ class KotlinCoroutinesAsyncStackTraceProvider : AsyncStackTraceProvider {
|
||||
return null
|
||||
}
|
||||
|
||||
val continuationVariable = frameProxy.visibleVariableByName("\$continuation") ?: return null
|
||||
val continuationVariable = frameProxy.safeVisibleVariableByName("\$continuation") ?: return null
|
||||
val continuation = frameProxy.getValue(continuationVariable) as? ObjectReference ?: return null
|
||||
|
||||
return collectFrames(continuation)
|
||||
|
||||
@@ -293,7 +293,7 @@ class VariableFinder private constructor(private val context: EvaluationContextI
|
||||
return null
|
||||
}
|
||||
|
||||
val continuationVariable = frameProxy.visibleVariableByName("\$continuation") ?: return null
|
||||
val continuationVariable = frameProxy.safeVisibleVariableByName("\$continuation") ?: return null
|
||||
val continuation = frameProxy.getValue(continuationVariable) as? ObjectReference ?: return null
|
||||
return findCoroutineContextForContinuation(continuation)
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@ fun StackFrameProxyImpl.safeVisibleVariables(): List<LocalVariableProxyImpl> {
|
||||
return wrapAbsentInformationException { visibleVariables() } ?: emptyList()
|
||||
}
|
||||
|
||||
fun StackFrameProxyImpl.safeVisibleVariableByName(name: String): LocalVariableProxyImpl? {
|
||||
return wrapAbsentInformationException { visibleVariableByName(name) }
|
||||
}
|
||||
|
||||
fun Method.safeAllLineLocations(): List<Location> {
|
||||
return DebuggerUtilsEx.allLineLocations(this) ?: emptyList()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user