如何在Visual C++ 2013中跳过调试所有std命名空间?

Muh*_*eeb 20 c++ debugging visual-studio visual-studio-debugging visual-studio-2013

我希望默认跳过调试所有std :: namespace C++,而不将代码窗口更改为std :: code,由Microsoft编写为xstring.这个问题类似于: 如何在步入时跳过VS 2008中的常见类?一步一步调试在MSVC++ 2010期间自动跳过STL函数.唯一的区别是他们的解决方案适用于Visual Studio 2008和2010.我自己尝试过,它适用于visual studio 2010,但我想在visual studio 2013上进行.同样的解决方案在visual studio 2013上不起作用我尝试将注册表中的所有值更改为:

_RTC_CheckEsp
Run Code Online (Sandbox Code Playgroud)

std\:\:.*=NoStepInto
Run Code Online (Sandbox Code Playgroud)

其中一些是视觉工作室12.0(视觉工作室2013)的价值,但重新启动visual studio 2013后,没有任何改变.相反,这适用于Visual Studio 2010."Just My Code"选项已打开.

Muh*_*eeb 22

正如Hans Passant所说,编辑.natstepfilter文件以添加排除项.

创建一个新文件,例如nostd.natstepfilter并在其中写入具有VS2012 NativeDE\StepOver注册表项,以防止特定功能更改格式的步入?

 <?xml version="1.0" encoding="utf-8"?>
 <StepFilter xmlns="http://schemas.microsoft.com/vstudio/debugger/natstepfilter/2010">
   <Function><Name>std::.*</Name><Action>NoStepInto</Action></Function>
</StepFilter>
Run Code Online (Sandbox Code Playgroud)

对于64位窗口,将文件移动到:

 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\Visualizers
Run Code Online (Sandbox Code Playgroud)

而对于32位窗口:

 C:\Program Files\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\Visualizers
Run Code Online (Sandbox Code Playgroud)

或者你定制安装的任何东西.请注意,natstepfilter不能在混合模式下工作(混合本机代码和托管代码).确保项目调试设置仅设置为"本机"

  • 您还可以将.natstepfilter文件放在用户配置文件目录中,例如.natvis文件.`%USERPROFILE%\ My Documents\Visual Studio 2012\Visualizers \`如果您没有管理员权限或只想保持安装目录干净,则非常有用. (9认同)