From eb173893b0e34f04296b8a881a2fbf7a3a10fec9 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 11 Jul 2019 21:18:22 +0900 Subject: [PATCH] Debugger: Minor, check evaluator preconditions as in Java evaluator --- .../idea/debugger/evaluate/KotlinEvaluatorBuilder.kt | 7 ++++++- .../idea/debugger/evaluate/evaluate/EvaluationStatus.kt | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt index 01000bc020c..338605c5b53 100644 --- a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt +++ b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluatorBuilder.kt @@ -128,9 +128,14 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour } } + if (!context.debugProcess.isAttached) { + status.error(EvaluationError.DebuggerNotAttached) + throw EvaluateExceptionUtil.PROCESS_EXITED + } + val frameProxy = context.frameProxy ?: run { status.error(EvaluationError.NoFrameProxy) - evaluationException("Cannot evaluate a code fragment: frame proxy is not available") + throw EvaluateExceptionUtil.NULL_STACK_FRAME } val operatingThread = context.suspendContext.thread ?: run { diff --git a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/evaluate/EvaluationStatus.kt b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/evaluate/EvaluationStatus.kt index 2108a069a55..74c9a906d30 100644 --- a/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/evaluate/EvaluationStatus.kt +++ b/idea/jvm-debugger/jvm-debugger-evaluation/src/org/jetbrains/kotlin/idea/debugger/evaluate/evaluate/EvaluationStatus.kt @@ -51,6 +51,7 @@ class EvaluationStatus { } enum class EvaluationError { + DebuggerNotAttached, NoFrameProxy, ThreadNotAvailable, ThreadNotSuspended,