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

时间:2014-02-17 18:18:41

标签: c++ visual-studio debugging visual-studio-2013 visual-studio-debugging

我希望默认跳过调试所有std :: namespace C ++,而不将代码窗口更改为std :: code,由Microsoft编写为xstring。这个问题类似于: How to skip common classes in VS 2008 when stepping in?Auto-skip STL functions during step-by-step debugging in MSVC++2010。 唯一的区别是他们的解决方案适用于Visual Studio 2008和2010.我自己尝试过,它适用于visual studio 2010,但我想在visual studio 2013上进行。同样的解决方案在visual studio 2013上不起作用我尝试将注册表中的所有值更改为:

_RTC_CheckEsp

std\:\:.*=NoStepInto

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

1 个答案:

答案 0 :(得分:22)

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

创建一个新文件,例如nostd.natstepfilter,并在Has the VS2012 NativeDE\StepOver registry entry that prevents step-into for specific functions changed format?

中写入
 <?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>

对于64位窗口,请将文件移至:

 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\Visualizers

而对于32位窗口来说:

 C:\Program Files\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\Visualizers

或您自定义安装的任何内容。请注意,natstepfilter不能在混合模式下工作(混合本机代码和托管代码)。确保项目调试设置设置为仅限本机