2

在调试时,我经常按 F11 进入某个功能。对于这个项目,我在任何地方都使用属性,它只是一个 RAII 包装器,用于检查我是否设置了变量,如果没有,则给我一个断言。它很有用。

但是现在调试很烦人,因为 F11 将进入该属性。我可以以某种方式跳过它吗?通过写属性、关键字或任何东西?

我正在使用 VS11beta

4

1 回答 1

3

当您处理托管代码时,这很容易设置。您可以使用类手动标记函数DebuggerHiddenAttribute,甚至可以打开内置调试器设置,例如“跳过属性和运算符”。

不幸的是,对于本机 C++ 代码,Visual Studio 不支持自动跳过特定函数。(至少,直到 VS 2010 才支持它——我没有足够的时间玩 VS 11,看看这是否是他们给我们的东西,以弥补他们偷走了我们所有颜色的事实。)

不过,有一个解决方法,很久以前在 Andy Pennell 的博客上记录了:
如何使用 Visual C++ 调试器不进入函数

本质上,您编辑以下注册表项(对于 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

正如博文中的免责声明所说:

This is not a documented feature. Well obviously you are reading this “documentation” right here, but what I mean is that is not guaranteed to work as it was never officially tested, not is it supported by Microsoft. Its existence in future versions or update to current versions is not guaranteed.

于 2012-04-17T19:50:08.647 回答