Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Brychcy2016-10-16 20:00:27 +0000
committerSarika Sinha2016-11-11 08:36:53 +0000
commit067e868d5fb4abdb5956679866dee9c2cb70ca30 (patch)
treead068a7088d727e71856b54d861ddf7d3f7a3127
parentac5f15bea3e1b95b12f8bb914d1c5311520078d8 (diff)
downloadeclipse.jdt.debug-067e868d5fb4abdb5956679866dee9c2cb70ca30.tar.gz
eclipse.jdt.debug-067e868d5fb4abdb5956679866dee9c2cb70ca30.tar.xz
eclipse.jdt.debug-067e868d5fb4abdb5956679866dee9c2cb70ca30.zip
Bug 506014 - constantly show method return node in variables view
Change-Id: I93d6cc93aa07f7d9a8ba07226b22ba65d98b3466 Signed-off-by: Till Brychcy <register.eclipse@brychcy.de>
-rw-r--r--org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java4
-rw-r--r--org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled.pngbin0 -> 165 bytes
-rw-r--r--org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled@2x.pngbin0 -> 256 bytes
-rw-r--r--org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java5
-rw-r--r--org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java2
-rw-r--r--org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIReturnValueVariable.java4
-rw-r--r--org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.java1
-rw-r--r--org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.properties1
-rw-r--r--org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java6
-rw-r--r--org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIThread.java7
10 files changed, 21 insertions, 9 deletions
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java
index da83866ea..1c0fb5659 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/test/stepping/StepResultTests.java
@@ -75,7 +75,7 @@ public class StepResultTests extends AbstractDebugTest {
stackFrame = (IJavaStackFrame) thread.getTopStackFrame();
assertEquals("main", stackFrame.getMethodName());
IVariable varInMain2 = stackFrame.getVariables()[0];
- assertEquals("x", varInMain2.getName());
+ assertEquals("no method return value", varInMain2.getName());
}
finally {
terminateAndRemove(thread);
@@ -124,7 +124,7 @@ public class StepResultTests extends AbstractDebugTest {
IVariable varInH = stackFrame.getVariables()[0];
// specifically no "i() returned" must be present
- assertEquals("this", varInH.getName());
+ assertEquals("no method return value", varInH.getName());
}
finally {
terminateAndRemove(thread);
diff --git a/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled.png b/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled.png
new file mode 100644
index 000000000..238a9d128
--- /dev/null
+++ b/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled.png
Binary files differ
diff --git a/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled@2x.png b/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled@2x.png
new file mode 100644
index 000000000..f11687be9
--- /dev/null
+++ b/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled@2x.png
Binary files differ
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
index bb02b1455..a63245499 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JDIModelPresentation.java
@@ -1105,6 +1105,11 @@ public class JDIModelPresentation extends LabelProvider implements IDebugModelPr
}
}
if (javaVariable instanceof JDIReturnValueVariable) {
+
+ JDIReturnValueVariable jdiReturnValueVariable = (JDIReturnValueVariable) javaVariable;
+ if (!jdiReturnValueVariable.hasResult) {
+ return JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_OBJS_METHOD_RESULT_DISABLED);
+ }
return JavaDebugImages.getImageDescriptor(JavaDebugImages.IMG_OBJS_METHOD_RESULT);
}
return JavaUI.getSharedImages().getImageDescriptor(ISharedImages.IMG_OBJS_DEFAULT);
diff --git a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
index d8cd7863d..9317aa771 100644
--- a/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
+++ b/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/ui/JavaDebugImages.java
@@ -42,6 +42,7 @@ public class JavaDebugImages {
public static final String IMG_OBJS_LOCAL_VARIABLE = "IMG_OBJS_LOCAL_VARIABLE"; //$NON-NLS-1$
public static final String IMG_OBJS_METHOD_RESULT = "IMG_OBJS_METHOD_RESULT"; //$NON-NLS-1$
+ public static final String IMG_OBJS_METHOD_RESULT_DISABLED = "IMG_OBJS_METHOD_RESULT_DISABLED"; //$NON-NLS-1$
public static final String IMG_OVR_METHOD_BREAKPOINT_ENTRY= "IMG_OBJS_METHOD_BREAKPOINT_ENTRY"; //$NON-NLS-1$
public static final String IMG_OVR_METHOD_BREAKPOINT_ENTRY_DISABLED= "IMG_OBJS_METHOD_BREAKPOINT_ENTRY_DISABLED"; //$NON-NLS-1$
@@ -158,6 +159,7 @@ public class JavaDebugImages {
declareRegistryImage(IMG_OBJS_LOCAL_VARIABLE, T_OBJ + "localvariable_obj.png"); //$NON-NLS-1$
declareRegistryImage(IMG_OBJS_METHOD_RESULT, T_OBJ + "methodresult_obj.png"); //$NON-NLS-1$
+ declareRegistryImage(IMG_OBJS_METHOD_RESULT_DISABLED, T_OBJ + "methodresult_obj_disabled.png"); //$NON-NLS-1$
declareRegistryImage(IMG_OVR_METHOD_BREAKPOINT_ENTRY, T_OVR + "entry_ovr.png"); //$NON-NLS-1$
declareRegistryImage(IMG_OVR_METHOD_BREAKPOINT_ENTRY_DISABLED, T_OVR + "entry_ovr_disabled.png"); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIReturnValueVariable.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIReturnValueVariable.java
index cb7376c80..562b01fb0 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIReturnValueVariable.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/logicalstructures/JDIReturnValueVariable.java
@@ -16,8 +16,10 @@ import org.eclipse.jdt.debug.core.IJavaValue;
* Represents the return value after a "step-return".
*/
public class JDIReturnValueVariable extends JDIPlaceholderVariable {
+ public final boolean hasResult;
- public JDIReturnValueVariable(String name, IJavaValue value) {
+ public JDIReturnValueVariable(String name, IJavaValue value, boolean hasResult) {
super(name, value);
+ this.hasResult = hasResult;
}
}
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.java
index 50e19d00c..67040ba74 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.java
@@ -125,6 +125,7 @@ public class JDIDebugModelMessages extends NLS {
public static String JDIStackFrame_Variable_information_unavailable_for_native_methods;
public static String JDIStackFrame_ReturnValue;
public static String JDIStackFrame_ExceptionThrown;
+ public static String JDIStackFrame_NoMethodReturnValue;
public static String JDIThisVariable_exception_while_retrieving_type_this;
public static String JDIThisVariableexception_retrieving_reference_type_name;
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.properties b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.properties
index a3d5bb576..3b8f5f648 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.properties
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugModelMessages.properties
@@ -93,6 +93,7 @@ JDIStackFrame_pop_frame_not_supported=Popping frames not supported.
JDIStackFrame_Variable_information_unavailable_for_native_methods=Variable information unavailable for native methods
JDIStackFrame_ReturnValue={0}() returned
JDIStackFrame_ExceptionThrown={0}() threw
+JDIStackFrame_NoMethodReturnValue=no method return value
JDIThisVariable_exception_while_retrieving_type_this={0} occurred while retrieving type ''this''.
JDIThisVariableexception_retrieving_reference_type_name={0} occurred retrieving reference type name.
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
index c03279d05..a6b82756b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIStackFrame.java
@@ -392,15 +392,17 @@ public class JDIStackFrame extends JDIDebugElement implements IJavaStackFrame {
return;
}
String name = MessageFormat.format(JDIDebugModelMessages.JDIStackFrame_ReturnValue, stepResult.fMethod.name());
- variables.add(0, new JDIReturnValueVariable(name, JDIValue.createValue(getJavaDebugTarget(), stepResult.fValue)));
+ variables.add(0, new JDIReturnValueVariable(name, JDIValue.createValue(getJavaDebugTarget(), stepResult.fValue), true));
} else {
if (fDepth + 1 > stepResult.fTargetFrameCount) {
// don't know if this really can happen, but other jvm suprises were not expected either
return;
}
String name = MessageFormat.format(JDIDebugModelMessages.JDIStackFrame_ExceptionThrown, stepResult.fMethod.name());
- variables.add(0, new JDIReturnValueVariable(name, JDIValue.createValue(getJavaDebugTarget(), stepResult.fValue)));
+ variables.add(0, new JDIReturnValueVariable(name, JDIValue.createValue(getJavaDebugTarget(), stepResult.fValue), true));
}
+ } else if(JDIThread.showStepResultIsEnabled()) {
+ variables.add(0, new JDIReturnValueVariable(JDIDebugModelMessages.JDIStackFrame_NoMethodReturnValue, new JDIPlaceholderValue(getJavaDebugTarget(), ""), false)); //$NON-NLS-1$
}
}
}
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 a9231e961..19216a913 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
@@ -2618,10 +2618,6 @@ public class JDIThread extends JDIDebugElement implements IJavaThread {
}
- private boolean showStepResultIsEnabled() {
- return Platform.getPreferencesService().getBoolean(JDIDebugPlugin.getUniqueIdentifier(), JDIDebugModel.PREF_SHOW_STEP_RESULT, true, null);
- }
-
/**
* Returns the kind of step this handler implements.
*
@@ -3734,5 +3730,8 @@ public class JDIThread extends JDIDebugElement implements IJavaThread {
protected DropToFrameHandler createDropToFrameHandler(IStackFrame stackFrame) throws DebugException {
return new DropToFrameHandler(stackFrame);
}
+ public static boolean showStepResultIsEnabled() {
+ return Platform.getPreferencesService().getBoolean(JDIDebugPlugin.getUniqueIdentifier(), JDIDebugModel.PREF_SHOW_STEP_RESULT, true, null);
+ }
} \ No newline at end of file

Back to the top