From f56bf57ac9427d26cf8978b1a10ccd70c0c9c843 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Fri, 15 Jul 2022 16:24:06 +0200 Subject: [PATCH 1/2] Add filtering for step out --- com.microsoft.java.debug.core/pom.xml | 2 +- .../adapter/handler/StepRequestHandler.java | 18 ++++++++++++------ .../META-INF/MANIFEST.MF | 2 +- com.microsoft.java.debug.plugin/pom.xml | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/com.microsoft.java.debug.core/pom.xml b/com.microsoft.java.debug.core/pom.xml index 453c95b2b..7f5d71cb5 100644 --- a/com.microsoft.java.debug.core/pom.xml +++ b/com.microsoft.java.debug.core/pom.xml @@ -8,7 +8,7 @@ ${base.name} :: Debugger Core The Java Debug Server is an implementation of Visual Studio Code (VSCode) Debug Protocol. It can be used in Visual Studio Code to debug Java programs. https://github.com/scalacenter/java-debug - 0.34.0+2 + 0.34.0+3-SNAPSHOT Java Debug Server for Visual Studio Code UTF-8 diff --git a/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/StepRequestHandler.java b/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/StepRequestHandler.java index dc200fe38..81747c460 100644 --- a/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/StepRequestHandler.java +++ b/com.microsoft.java.debug.core/src/main/java/com/microsoft/java/debug/core/adapter/handler/StepRequestHandler.java @@ -161,17 +161,23 @@ private void handleDebugEvent(DebugEvent debugEvent, IDebugSession debugSession, threadState.deleteStepRequest(eventRequestManager); IStepFilterProvider stepFilter = context.getProvider(IStepFilterProvider.class); try { - if (threadState.pendingStepType == Command.STEPIN) { + if (threadState.pendingStepType == Command.STEPIN || threadState.pendingStepType == Command.STEPOUT) { int currentStackDepth = thread.frameCount(); Location currentStepLocation = getTopFrame(thread).location(); // If the ending step location is filtered, or same as the original location where the step into operation is originated, // do another step of the same kind. if (shouldFilterLocation(threadState.stepLocation, currentStepLocation, stepFilter, context) - || shouldDoExtraStepInto(threadState.stackDepth, threadState.stepLocation, currentStackDepth, currentStepLocation)) { - threadState.pendingStepRequest = DebugUtility.createStepIntoRequest(thread, - context.getStepFilters().allowClasses, - context.getStepFilters().skipClasses); + || shouldDoExtraStep(threadState.stackDepth, threadState.stepLocation, currentStackDepth, currentStepLocation)) { + if (threadState.pendingStepType == Command.STEPIN) { + threadState.pendingStepRequest = DebugUtility.createStepIntoRequest(thread, + context.getStepFilters().allowClasses, + context.getStepFilters().skipClasses); + } else { + threadState.pendingStepRequest = DebugUtility.createStepIntoRequest(thread, + context.getStepFilters().allowClasses, + context.getStepFilters().skipClasses); + } threadState.pendingStepRequest.enable(); debugEvent.shouldResume = true; return; @@ -223,7 +229,7 @@ private boolean shouldFilterLocation(Location originalLocation, Location current * @throws IncompatibleThreadStateException * if the thread is not suspended in the target VM. */ - private boolean shouldDoExtraStepInto(int originalStackDepth, Location originalLocation, int currentStackDepth, Location currentLocation) + private boolean shouldDoExtraStep(int originalStackDepth, Location originalLocation, int currentStackDepth, Location currentLocation) throws IncompatibleThreadStateException { if (originalStackDepth != currentStackDepth) { return false; diff --git a/com.microsoft.java.debug.plugin/META-INF/MANIFEST.MF b/com.microsoft.java.debug.plugin/META-INF/MANIFEST.MF index d20e24bf6..b3831ecb3 100644 --- a/com.microsoft.java.debug.plugin/META-INF/MANIFEST.MF +++ b/com.microsoft.java.debug.plugin/META-INF/MANIFEST.MF @@ -25,4 +25,4 @@ Bundle-ClassPath: lib/commons-io-2.10.0.jar, ., lib/rxjava-2.1.1.jar, lib/reactive-streams-1.0.0.jar, - lib/com-microsoft-java-debug-core-0.34.0+2.jar + lib/com-microsoft-java-debug-core-0.34.0+3-SNAPSHOT.jar diff --git a/com.microsoft.java.debug.plugin/pom.xml b/com.microsoft.java.debug.plugin/pom.xml index f17108f9a..7ac56ed38 100644 --- a/com.microsoft.java.debug.plugin/pom.xml +++ b/com.microsoft.java.debug.plugin/pom.xml @@ -45,7 +45,7 @@ ch.epfl.scala com-microsoft-java-debug-core - 0.34.0+2 + 0.34.0+3-SNAPSHOT From 814a43be424f71b65f7ab29dcaf970c946bb01b6 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Fri, 15 Jul 2022 17:42:39 +0200 Subject: [PATCH 2/2] fix version of eclipse snapshot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a0f7c9b9d..e2b2c965b 100644 --- a/pom.xml +++ b/pom.xml @@ -168,7 +168,7 @@ JDT.LS p2 - https://download.eclipse.org/jdtls/snapshots/repository/latest/ + https://download.eclipse.org/jdtls/snapshots/repository/1.5.0.202110111021/ JBOLL.TOOLS