调试时我经常按F11进入功能。对于这个项目我使用属性everwhere只是一个RAII包装器,检查我是否设置了变量,如果我没有,给我一个断言。它很有用。
然而现在调试很烦人,因为F11将进入该属性。我可以以某种方式跳过它吗?通过写属性,关键字或任何东西?
我正在使用VS11beta
答案 0 :(得分:3)
当您处理托管代码时,这很容易设置。您可以使用DebuggerHiddenAttribute
类手动标记该函数,甚至可以打开内置调试器设置,例如“跳过属性和运算符”。
不幸的是,Visual Studio对本机C ++代码不支持自动单步执行特定功能。 (至少,直到2010年才得到支持 - 我没有足够的时间和VS 11一起玩,看看这是否是他们给我们的东西,以弥补他们偷走了我们所有颜色的事实。)< / p>
是一种解决方法,但很久以前就在Andy Pennell的博客上记录:
How to Not Step Into Functions using the Visual C++ Debugger
基本上,您编辑以下注册表项(对于VS 2010):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\StepOver
或64位应用程序:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\NativeDE\StepOver
指定一个将由调试器与函数匹配的正则表达式。
例如,如果您不希望调试器进入重载运算符,则可以使用以下表达式:
\scope:operator\oper:=NoStepInto
正如博客文章中的免责声明所说:
这不是一个记录在案的功能。很明显,你正在阅读这个“文档”,但我的意思是,它不能保证工作,因为它从未经过官方测试,不是微软支持。它在未来版本中的存在或对当前版本的更新不能得到保证。