开发者

How to skip common classes in VS 2008 when stepping in?

开发者 https://www.devze.com 2022-12-16 14:17 出处:网络
How can I skip common classes in VS 2008 debugger whe开发者_StackOverflown stepping in? For example, I do not want debugger to step into any of the std:: classes.

How can I skip common classes in VS 2008 debugger whe开发者_StackOverflown stepping in?

For example, I do not want debugger to step into any of the std:: classes. How can I achieve that?

I've found ways of doing this in VS 2005 and earlier, but not 2008


You can do this by entering entries into the registry (I know, it sucks). The key you are looking for varies from 32 to 64 bit systems. For 32-bit systems the key is

HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\NativeDE\StepOver

If you're running a 64 bit OS and a 32 bit Visual Studio the key is

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0\NativeDE\StepOver

The Wow6432Node key is a key present for 32 bit applications running on 64 bit systems. (Sidenote: searching the registry for "_RTC_CheckEsp" probably will lead you to the right place, it's a default entry in Visual Studio 9)

The syntax should be familiar to you, but as an example, a simple entry could be string value boost::.*=NoStepInto which will avoid the debugger to step into Boost. See http://www.cprogramming.com/debugging/visual-studio-msvc-debugging-NoStepInto.html for some other examples.

Hope this helps :)


Taken from http://www.highprogrammer.com/alan/windev/visualstudio.html:

Avoiding Stepping Into Things

It's often useful to avoid stepping into some common code like constructors or overloaded operators. autoexp.dat provides this capability. Add a section called "[ExecutionControl]". Add keys where the key is the function name and the value is "NoStepInto". You can specify an asterisk (*) as a wildcard as the first set of colons for a namespace or class.

autoexp.dat is only read on Visual Studio's start up.

To ignore the function myfunctionname, and all calls to the class CFoo:

[ExecutionControl]
myfunctionname=NoStepInto
CFoo::*=NoStepInto

To ignore construction and assignment of MFC CStrings: (Notice the extra = in CString::operator=.)

[ExecutionControl]
CString::CString=NoStepInto
CString::operator==NoStepInto

To ignore all ATL calls:

[ExecutionControl]
ATL::*=NoStepInto 
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号