[ACCEPTED]-Can I find out the return value before returning while debugging in Eclipse?-return-value
This feature was added to Eclipse version 1 4.7 M2 under Eclipse bug 40912.
To use it:
- step over the
return
statement (using "Step Over" or "Step Return") - now the first line in the variable view will show the result of the return statement, as "[statement xxx] returned: "
See Eclipse Project Oxygen (4.7) M2 - New and Noteworthy for details.
Found a really good shortcut for this. Select 8 the expression which returns the value and 7 press
Ctrl + Shift + D
This will display the value of the 6 return statement. This is really helpful 5 in cases where you can't or don't want to 4 change just for debugging purpose.
Hope this 3 helps.
Note: Have not tested this with third 2 party libraries, but it is working fine 1 for my code. Tested this on Eclipse Java EE IDE for Web Developers. Version: Juno Service Release 1
That's why I always stick with the following 2 pattern for methods:
MyReturnedType foo() {
MyReturnedType result = null;
// do your stuff, modify the result or not
return result;
}
My rules:
- Only one return statement, only at the end of the method (finally allowed after it)
- Always have a local called result which holds the returned value, starting from a default.
Naturally, the 1 most trivial getters are exempt.
This is actually a long standing bug in 2 Eclipse, dating back from the very first 1 days of the IDE: https://bugs.eclipse.org/bugs/show_bug.cgi?id=40912
I am curious about to learn the answer to 6 this question also.
In the past, when dealing 5 with 3rd party library like that, what I 4 did is to create a wrapper class or child 3 class that delegate to the parent class 2 and do my debugging in the wrapper/child 1 class. It takes extra work though.
"Now when you return from a method, in 3 the upper method, in the variable view it 2 shows the return value of the previously 1 finished call" [1]
Tough one. My experience, outside of Eclipse, is 9 that if you might need to see the return 8 value, it is best to assign it to a local 7 variable in the function so that the return 6 statement is a simple return varname;
and not return(some * expression || other);
. However, that's 5 not dreadfully helpful to you since you 4 say you can't (or don't want to) modify 3 or even recompile the code. So, I don't 2 have a good answer for you - perhaps you 1 need to reconsider your requirement.
Depending on the return statement, you can 6 highlight the expression that is being returned 5 and from the right-click menu, there should 4 be something like "evaluate expression" (I 3 don't have eclipse in front of me now, but 2 it's something like that). It will show 1 you what is going to be returned.
This is a bit far-fetched, but as there 12 doesn't seem to be a simple way:
You could 11 use AspectJ to instrument the JAR with aspects 10 that get hold of the return value of the 9 methods you're interested in. According 8 to Eclipse's documentation, AspectJ programs 7 can be debugged like other programs.
There are two 6 options to weave your classes without recompiling 5 the library :
Post-compile weaving if processing 4 the binary JAR is acceptable;
Load-time weaving, which 3 requires activating a weaving agent in the 2 VM.
See the eclipse documentation (link above) and 1 also the AspectJ Development Environment Guide.
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.