19

我想在默认情况下跳过调试所有的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年我试图改变注册表中的所有值等于:如何跳过调试Visual C++ 2013中的所有std命名空间?

_RTC_CheckEsp 

std\:\:.*=NoStepInto 

,其中的一些人值分别为Visual Studio 12.0(这是视觉工作室2013年),但在重新启动后视力演播室2013年,没有任何改变相反,这适用于Visual Studio 2010.“Just My Code”选项处于打开状态。

+1

最后一句错字? – Yakk

+4

打开“我的代码”选项。编辑[.natstepfilter](http://msdn.microsoft.com/zh-cn/library/dn457346.aspx#BKMK_C___Just_My_Code)文件以添加排除项。 –

+0

@Yakk纠正 –

回答

21

正如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不能在混合模式下工作(混合本机和托管代码)。确保您的项目调试设置设置为仅限本机

+8

你也可以把你的.natstepfilter文件在您的用户配置文件目录中,例如.natvis文件。 '%USERPROFILE%\ My Documents \ Visual Studio 2012 \ Visualizers \'如果您没有管理员权限或只是想让安装目录保持干净, –

+1

这适用于Visual Studio 2015.对于C++调试体验,这可能是最有用的一种行更改(尤其是如果您使用智能指针)。文件位于 '''C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ Packages \ Debugger \ Visualizers''' – David