How to skip common classes in VS 2008 when steppin

2019-01-17 07:58发布

How can I skip common classes in VS 2008 debugger when 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

2条回答
放我归山
2楼-- · 2019-01-17 08:08

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 
查看更多
兄弟一词,经得起流年.
3楼-- · 2019-01-17 08:25

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 :)

查看更多
登录 后发表回答