我知道"只启用我的代码"调试选项,但这只适用于托管代码.
我正在寻找一种方法来进入函数调用,而不必单步执行,例如,STL字符串强制转换操作符,因为在函数的一个参数中存在从char*到字符串的隐式转换.
我发现这个博客条目有一个解决方案.虽然我更愿意说"不要介入任何不属于这个项目的东西",但这看起来还是可行的.
编辑:看了几个博客和新闻组后,方法是为每个你不想在这个注册表项下进入的函数添加一个条目(假设VS 2005):
32 bit Windows \\HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\NativeDE\StepOver 64 bit Windows \\HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\8.0\NativeDE\StepOver
路径的版本号:
Visual Studio 2005: 8.0 Visual Studio 2008: 9.0 Visual Studio 2010: 10.0 Visual Studio 2012: 11.0 Visual Studio 2013: 12.0
此键包含一组影响步进执行的规则.每个规则都被指定为一个单独的条目,其名称是十进制数,其值是一个函数名称模式,用于指定我们想要影响的函数.例如
"10" = "boost\:\:scoped_ptr.*\:\:.*=NoStepInto"
阻止步入boost :: scoped_ptr函数.
从高值到低值评估规则,直到找到匹配的模式,或者没有剩下的规则.在这种情况下,该功能进入.
函数名称是正则表达式.
冒号需要用反斜杠引用.
您可以指定StepInto以及NoStepInto.这为您提供了一种避免步入同一范围/命名空间中的所有功能的方法.
重新启动Visual Studio以获取对注册表的更改.