在Visual Studio 2012中调试C++代码时跳过STL代码?

Ver*_*ahn 20 c++ stl visual-studio-debugging visual-studio-2012

在Visual Studio 2012中使用C++调试器(native,x64)时是否可以跳过STL代码?通常在调试C++代码时我会进入STL代码.我希望Microsoft提供的STL代码是正确的 - 我对调试它不感兴趣 - 我只对调试我自己的(自编)代码感兴趣.

对于在此功能设置断点时的instacne:

foo(std::make_shared<int>(6));
Run Code Online (Sandbox Code Playgroud)

其中foo定义为:

void foo(std::shared_ptr<int> x)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

我不想深入了解std :: make_shared的细节 - 我想要的是直接进入函数foo.但这似乎不可能.如果到达断点at foo(std::make_shared<int>(6));并按下'Step Into'按钮(或F11),它首先进入'memory'头文件(STL):

在此输入图像描述

所以我再次按下'Step Out'按钮而不是再按'Step Into'按钮进入该foo功能.我想要的是跳过STL相关参数初始化或直接跳转到函数的可能性.

xan*_*xan 8

Step Into Specific可用的右键菜单上:

步入具体

虽然对于单个参数,我更经常从键盘上做Step Into+ Step Out+ Step Into而不是导航菜单Step Into Specific.

MSDN博客文章" 如何不使用Visual C++调试器进入函数"中描述了一个非常规的注册表项,用于始终单步执行某些代码.