diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index a1248c99a927..07f98ec8c8db 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -26,7 +26,6 @@ import com.intellij.debugger.settings.NodeRendererSettings; import com.intellij.debugger.statistics.DebuggerStatistics; import com.intellij.debugger.statistics.Engine; import com.intellij.debugger.statistics.StatisticsStorage; -import com.intellij.debugger.statistics.SteppingAction; import com.intellij.debugger.ui.breakpoints.*; import com.intellij.debugger.ui.tree.render.*; import com.intellij.execution.CantRunException; @@ -1953,8 +1952,8 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb } @Override - public Object createCommandToken() { - return StatisticsStorage.createSteppingToken(SteppingAction.STEP_OUT, Engine.JAVA); + protected @NotNull SteppingAction getSteppingAction() { + return SteppingAction.STEP_OUT; } } @@ -2005,8 +2004,8 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb } @Override - public Object createCommandToken() { - return StatisticsStorage.createSteppingToken(SteppingAction.STEP_INTO, Engine.JAVA); + protected @NotNull SteppingAction getSteppingAction() { + return SteppingAction.STEP_INTO; } } @@ -2078,8 +2077,8 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb } @Override - public Object createCommandToken() { - return StatisticsStorage.createSteppingToken(SteppingAction.STEP_OVER, Engine.JAVA); + protected @NotNull SteppingAction getSteppingAction() { + return SteppingAction.STEP_OVER; } } @@ -2140,6 +2139,11 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb }); } } + + @Override + protected @NotNull SteppingAction getSteppingAction() { + return SteppingAction.RUN_TO_CURSOR; + } } public abstract class StepCommand extends ResumeCommand { @@ -2172,8 +2176,14 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb public void step(SuspendContextImpl suspendContext, ThreadReferenceProxyImpl stepThread, RequestHint hint, Object commandToken) { } - public Object createCommandToken() { - return null; + protected @NotNull Engine getEngine() { + return Engine.JAVA; + } + + protected abstract @NotNull SteppingAction getSteppingAction(); + + public final @NotNull Object createCommandToken() { + return StatisticsStorage.createSteppingToken(getSteppingAction(), getEngine()); } @Nullable diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/SteppingAction.kt b/java/debugger/impl/src/com/intellij/debugger/engine/SteppingAction.kt new file mode 100644 index 000000000000..59415c173231 --- /dev/null +++ b/java/debugger/impl/src/com/intellij/debugger/engine/SteppingAction.kt @@ -0,0 +1,6 @@ +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.debugger.engine + +enum class SteppingAction { + STEP_INTO, STEP_OUT, STEP_OVER, RUN_TO_CURSOR +} \ No newline at end of file diff --git a/java/debugger/impl/src/com/intellij/debugger/statistics/DebuggerStatistics.kt b/java/debugger/impl/src/com/intellij/debugger/statistics/DebuggerStatistics.kt index 3c722e19e0ba..bd3ac6496220 100644 --- a/java/debugger/impl/src/com/intellij/debugger/statistics/DebuggerStatistics.kt +++ b/java/debugger/impl/src/com/intellij/debugger/statistics/DebuggerStatistics.kt @@ -4,6 +4,7 @@ package com.intellij.debugger.statistics import com.intellij.debugger.actions.JvmSmartStepIntoHandler import com.intellij.debugger.engine.DebugProcess import com.intellij.debugger.engine.DebugProcessEvents +import com.intellij.debugger.engine.SteppingAction import com.intellij.debugger.ui.breakpoints.Breakpoint import com.intellij.internal.statistic.eventLog.EventLogGroup import com.intellij.internal.statistic.eventLog.events.EventFields @@ -15,7 +16,7 @@ import org.jetbrains.annotations.ApiStatus object DebuggerStatistics : CounterUsagesCollector() { override fun getGroup(): EventLogGroup = GROUP - private val GROUP = EventLogGroup("java.debugger", 8) + private val GROUP = EventLogGroup("java.debugger", 9) // fields diff --git a/java/debugger/impl/src/com/intellij/debugger/statistics/StatisticsStorage.kt b/java/debugger/impl/src/com/intellij/debugger/statistics/StatisticsStorage.kt index ff4da601cf55..32e29c9cf9b9 100644 --- a/java/debugger/impl/src/com/intellij/debugger/statistics/StatisticsStorage.kt +++ b/java/debugger/impl/src/com/intellij/debugger/statistics/StatisticsStorage.kt @@ -2,6 +2,7 @@ package com.intellij.debugger.statistics import com.intellij.debugger.engine.DebugProcess +import com.intellij.debugger.engine.SteppingAction import com.intellij.debugger.ui.breakpoints.Breakpoint import com.intellij.openapi.util.Key import java.util.concurrent.ConcurrentHashMap @@ -73,10 +74,6 @@ data class BreakpointInstallStatistic(val breakpoint: Breakpoint<*>) : Statistic */ class SteppingStatistic(val action: SteppingAction, val engine: Engine) : StatisticElement -enum class SteppingAction { - STEP_INTO, STEP_OUT, STEP_OVER -} - enum class Engine { JAVA, KOTLIN } diff --git a/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/DebuggerSteppingHelper.kt b/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/DebuggerSteppingHelper.kt index 9617049c0bce..980e651ee0b3 100644 --- a/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/DebuggerSteppingHelper.kt +++ b/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/DebuggerSteppingHelper.kt @@ -5,8 +5,6 @@ import com.intellij.debugger.SourcePosition import com.intellij.debugger.engine.* import com.intellij.debugger.jdi.ThreadReferenceProxyImpl import com.intellij.debugger.statistics.Engine -import com.intellij.debugger.statistics.StatisticsStorage.Companion.createSteppingToken -import com.intellij.debugger.statistics.SteppingAction import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.diagnostic.thisLogger import com.intellij.xdebugger.XSourcePosition @@ -84,7 +82,7 @@ object DebuggerSteppingHelper { return hint } - override fun createCommandToken() = createSteppingToken(SteppingAction.STEP_OVER, Engine.KOTLIN) + override fun getEngine() = Engine.KOTLIN } } } diff --git a/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/KotlinStepActionFactory.kt b/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/KotlinStepActionFactory.kt index d2c3155521ec..90ac9f8b9617 100644 --- a/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/KotlinStepActionFactory.kt +++ b/plugins/kotlin/jvm-debugger/core/src/org/jetbrains/kotlin/idea/debugger/core/stepping/KotlinStepActionFactory.kt @@ -5,8 +5,6 @@ import com.intellij.debugger.engine.* import com.intellij.debugger.engine.evaluation.EvaluateException import com.intellij.debugger.jdi.ThreadReferenceProxyImpl import com.intellij.debugger.statistics.Engine -import com.intellij.debugger.statistics.StatisticsStorage.Companion.createSteppingToken -import com.intellij.debugger.statistics.SteppingAction import com.intellij.openapi.diagnostic.Logger import com.sun.jdi.request.StepRequest import org.jetbrains.kotlin.idea.debugger.core.KotlinDebuggerCoreBundle.message @@ -57,7 +55,7 @@ object KotlinStepActionFactory { return hint } - override fun createCommandToken() = createSteppingToken(SteppingAction.STEP_OVER, Engine.KOTLIN) + override fun getEngine() = Engine.KOTLIN } } } @@ -84,7 +82,7 @@ object KotlinStepActionFactory { return getThreadFilterFromContextForStepping(suspendContext) ?: super.getThreadFilterFromContext(suspendContext) } - override fun createCommandToken() = createSteppingToken(SteppingAction.STEP_INTO, Engine.KOTLIN) + override fun getEngine() = Engine.KOTLIN } } } @@ -109,7 +107,7 @@ object KotlinStepActionFactory { return hint } - override fun createCommandToken() = createSteppingToken(SteppingAction.STEP_INTO, Engine.KOTLIN) + override fun getEngine() = Engine.KOTLIN } } } @@ -148,7 +146,7 @@ object KotlinStepActionFactory { return getThreadFilterFromContextForStepping(suspendContext) ?: super.getThreadFilterFromContext(suspendContext) } - override fun createCommandToken() = createSteppingToken(SteppingAction.STEP_OUT, Engine.KOTLIN) + override fun getEngine() = Engine.KOTLIN } } }