Is it possible to skip STL Code when using the C++ debugger (native, x64) in Visual Studio 2012? Quite often when debugging C++ code I step into STL code. I expect that the
With Visual Studio, whenever you are about to step into a function, you can actually right-click onto the statement and select in a cascaded menu called "Step Into Specific" the destination you want to reach. You can then bypass copy constructor/getter/etc. passed as argument to the function. See http://msdn.microsoft.com/en-us/library/7ad07721(v=vs.100).aspx for more information.
Move the STL call (make_shared) outside of foo, and pass the result into foo. Then the breakpoint set on the call to foo should be beyond that STL code. Otherwise could you not put the breakpoint inside the foo definition itself?
For new version of Visual Studio like VS2019, we have new chosen: Just my code
https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2019
There's Step Into Specific
available on the right-click menu:
Though for a single argument, I'll more often do Step Into
+ Step Out
+ Step Into
from the keyboard instead of navigating the menus for Step Into Specific
.
An unofficial registry key for always stepping over certain code is described in an MSDN blog post, How to Not Step Into Functions using the Visual C++ Debugger.
There used to be a registry key to do that, but this has changed in VS2012:
Visual Studio 2012 (dev11) Everything has changed! Until the VC++ team put something on their blog (feel free to bug them to do this), take a peek at this file:
C:\Program Files[ (x86)]\Microsoft Visual Studio 11.0\Common7\Packages\Debugger\Visualizers\default.natstepfilter
For VS 2013 and 2015, the Just my code setting, known from .NET projects, was extended to work for native C++ too.