如何在步入时跳过VS 2008中的常用类?

时间:2010-01-14 08:08:08

标签: c++ visual-studio visual-studio-2008 debugging

如何在步入时跳过VS 2008调试器中的常用类?

例如,我不希望调试器进入任何std :: classes。 我怎样才能做到这一点?

我已经在VS 2005及更早版本中找到了这样做的方法,但不是2008年

2 个答案:

答案 0 :(得分:17)

您可以通过在注册表中输入条目来实现此目的(我知道,它很糟糕)。您正在寻找的密钥从32位到64位系统不等。对于32位系统,关键是

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

如果您运行的是64位操作系统和32位Visual Studio,则密钥为

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

Wow6432Node键是key present for 32 bit applications running on 64 bit systems。 (旁注:在注册表中搜索“_RTC_CheckEsp”可能会将您带到正确的位置,这是Visual Studio 9中的默认条目)

您应该熟悉语法,但作为示例,一个简单的条目可能是字符串值boost::.*=NoStepInto,这将避免调试器进入Boost。有关其他一些示例,请参阅http://www.cprogramming.com/debugging/visual-studio-msvc-debugging-NoStepInto.html

希望这会有所帮助:)

答案 1 :(得分:0)

取自http://www.highprogrammer.com/alan/windev/visualstudio.html

避免步入事物

避免单步执行某些常见代码(如构造函数或重载运算符)通常很有用。 autoexp.dat提供此功能。添加一个名为“[ExecutionControl]”的部分。添加键,其中键是函数名称,值为“NoStepInto”。您可以将星号(*)指定为通配符,作为命名空间或类的第一组冒号。

autoexp.dat仅在Visual Studio启动时读取。

忽略函数myfunctionname,以及对类CFoo的所有调用:

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

忽略MFC CStrings的构造和赋值:(注意在CString :: operator =中的extra =。)

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

忽略所有ATL呼叫:

[ExecutionControl]
ATL::*=NoStepInto