diff options
author | Till Brychcy | 2016-10-16 20:00:27 +0000 |
---|---|---|
committer | Sarika Sinha | 2016-11-11 08:36:53 +0000 |
commit | 067e868d5fb4abdb5956679866dee9c2cb70ca30 (patch) | |
tree | ad068a7088d727e71856b54d861ddf7d3f7a3127 | |
parent | ac5f15bea3e1b95b12f8bb914d1c5311520078d8 (diff) | |
download | eclipse.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>
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 Binary files differnew file mode 100644 index 000000000..238a9d128 --- /dev/null +++ b/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled.png 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 Binary files differnew file mode 100644 index 000000000..f11687be9 --- /dev/null +++ b/org.eclipse.jdt.debug.ui/icons/full/obj16/methodresult_obj_disabled@2x.png 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 |