Bug 470200 - Allow Overriding the JDIThread step handlers
Change-Id: I584767b89abffb1447235e35b7876b9646f57abf
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
index 8797935..fc9ad74 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java
@@ -1772,7 +1772,7 @@
return;
}
}
- StepHandler handler = new StepIntoHandler();
+ StepHandler handler = createStepIntoHandler();
handler.step();
}
@@ -1789,7 +1789,7 @@
return;
}
}
- StepHandler handler = new StepOverHandler();
+ StepHandler handler = createStepOverHandler();
handler.step();
}
@@ -1806,7 +1806,7 @@
return;
}
}
- StepHandler handler = new StepReturnHandler();
+ StepHandler handler = createStepReturnHandler();
handler.step();
}
@@ -2135,7 +2135,7 @@
// This block is synchronized, such that the step request
// begins before a background evaluation can be performed.
synchronized (this) {
- StepHandler handler = new DropToFrameHandler(frame);
+ StepHandler handler = createDropToFrameHandler(frame);
handler.step();
}
}
@@ -2204,7 +2204,7 @@
return;
}
}
- StepHandler handler = new StepToFrameHandler(frame);
+ StepHandler handler = createStepToFrameHandler(frame);
handler.step();
}
@@ -3045,7 +3045,7 @@
/**
* Handler for step into requests.
*/
- class StepIntoHandler extends StepHandler {
+ protected class StepIntoHandler extends StepHandler {
/*
* (non-Javadoc)
@@ -3074,7 +3074,7 @@
/**
* Handler for step return requests.
*/
- class StepReturnHandler extends StepHandler {
+ protected class StepReturnHandler extends StepHandler {
/*
* (non-Javadoc)
*
@@ -3120,7 +3120,7 @@
* stack frame). Step returns are performed until a specified stack frame is
* reached or the thread is suspended (explicitly, or by a breakpoint).
*/
- class StepToFrameHandler extends StepReturnHandler {
+ protected class StepToFrameHandler extends StepReturnHandler {
/**
* The number of frames that should be left on the stack
@@ -3202,7 +3202,7 @@
/**
* Handles dropping to a specified frame.
*/
- class DropToFrameHandler extends StepReturnHandler {
+ protected class DropToFrameHandler extends StepReturnHandler {
/**
* The number of frames to drop off the stack.
@@ -3714,5 +3714,25 @@
return (IJavaObject) JDIValue
.createValue(getJavaDebugTarget(), fThread);
}
+
+ protected StepIntoHandler createStepIntoHandler() {
+ return new StepIntoHandler();
+ }
+ protected StepOverHandler createStepOverHandler() {
+ return new StepOverHandler();
+ }
+
+ protected StepReturnHandler createStepReturnHandler() {
+ return new StepReturnHandler();
+ }
+
+ protected StepToFrameHandler createStepToFrameHandler(IStackFrame stackFrame) throws DebugException {
+ return new StepToFrameHandler(stackFrame);
+ }
+
+ protected DropToFrameHandler createDropToFrameHandler(IStackFrame stackFrame) throws DebugException {
+ return new DropToFrameHandler(stackFrame);
+ }
+
}
\ No newline at end of file