我知道“仅启用我的代码”调试选项,但这仅适用于托管代码。
我正在寻找一种无需单步执行函数调用的方法,例如,STL 字符串强制转换运算符,因为在函数的一个参数中存在从 char* 到字符串的隐式转换。
最佳答案
我找到了 blog entry有一个解决方案。虽然我更愿意说“不要介入不属于这个项目的任何事情”,但这看起来是可行的。
编辑:在查看了一些博客和新闻组之后,方法是在此注册表项下为您不想进入的每个功能添加一个条目(假设 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 以获取对注册表的更改。
关于c++ - 有没有办法自动避免进入 Visual Studio 中的某些功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/626744/