Finally we got an improved VS’ Step Into feature. But what is wrong with actual one? Let’s see an example:
public static void Main() { SomeMethod(SomeField, GetSomeValue()); } private void SomeMethod(bool flag, int value) { ... } private bool SomeField { get { bool result = ... ... return result; } } private int GetSomeValue() { .... return number; }
Imagine you are positioned before SomeMethod gets invoked and you want to step into SomeMethod directly. Untill now you’ve got an annoyance here. The only option was to set a breakpoint at the beginning of SomeMethod and Step Over or run the code and wait for breakpoint being hit.
If you instead choose Step Into then you would step into each of the parameters being passed before stepping into SomeMethod, in my case a property and another method. Highly annoying.
OK, there is also a DebuggerStepThrough attribute which you can apply at design time to a property or to a method. At the runtime the debugger won’t step into methods or properties decorated with this attribute. But this option is very rigid as you have to decide at design time and you can’t change it during execution. Plus it requires source code modifications.
So people have been waiting for direct step into (or whatever you want to call it) since the beginning of VS creation. No luck so far, [MS] apparently didn’t hear on this ear. Instead, fine [DevEx] folks decided to implement it by themselves and put the feature into the latest incarnation of CodeRush. Yes, by installing CodeRush 2.1.1 or newer you get direct step into through the Shift-Ctrl+F11 (configurable) shortcut. No more ad-hoc breakpoints, no more countless hours of stepping into just to get into the right method – hit Shift+Ctrl+F11 and there you go directly into the method you want.
If you are still undecided whether to install CodeRush or not, this is a perfect reason to install it. Besides this handy feature there is a lot, lot more that CodeRush brings you.
Have you read Mark’s blogs at the end of the last year? Here are three hillarious posts on how he implemented “Step into member” feature:
http://www.doitwith.net/2006/12/23/ChristmasCancelledAgain.aspx
http://www.doitwith.net/2006/12/24/SteppingIntoMembers.aspx
http://www.doitwith.net/2006/12/24/ChristmasSaved!(resolvedAmbiguityWithStepIntoMember).aspx
Yep, of course I did. 🙂