views:

288

answers:

1

I've been looking into the NoStepInto feature of Visual Studio. Andy Pennell's post How to Not Step Into Functions using the Visual C++ Debugger has been extremely helpful.

But as far as I can tell, in VS2008 the string name of the rule no longer has to be an integer, and no longer has any effect on the priority of the rule.

I have played around with the registry a bit and it seems to use the best match or maximal match (not sure what the correct expression is).

So if I have the following two rules

boost              boost\:\:.*=NoStepInto
boost::shared_ptr  boost\:\:shared_ptr.*=StepInto

it does step into shared pointers, which I assume is because the second rule is a more exact match.

Has anyone come across any information on anywhere confirming or refuting this? I can't seem to find any.

Thank you!

A: 

I just tested this and things seem to work the way I expect them to:

20    boost\:\:.*=NoStepInto
30    boost\:\:shared_ptr.*=StepInto

Does not step me into any boost namespace functions, except for shared_ptr's.

Changing the priorities around to

10    boost\:\:shared_ptr.*=StepInto
20    boost\:\:.*=NoStepInto

Does not step me into any boost namespace functions at all.

richardwb
Really? In VS 2008?
Vickster
Yep, VS 2008 SP1.
richardwb
I'm not talking about SP1...
Vickster
Well, it's possible that it's a bug in VS2008 that they fixed in the first service pack.
richardwb
how annoying...
Vickster