如何在步入时跳过VS 2008调试器中的常用类?
例如,我不希望调试器进入任何std :: classes。 我怎样才能做到这一点?
我已经在VS 2005及更早版本中找到了这样做的方法,但不是2008年
答案 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