在MSVC++ 2010中逐步调试期间自动跳过STL功能

Fel*_*bek 17 debugging visual-studio-2010 visual-studio

我经常通过一个程序逐步调试.我通常总是使用"步入"按钮来停止我正在调试的部分中的每一行,当我认为我得到当前行时,只需再次单击.

然而,真正破坏这种工作流程的是库调用.如果有字符串长度计算或地图存储或类似的东西,调试器将跳转到某个STL文件并继续.然后我必须按"跳出"跳回我正在看的程序.

这意味着:我从我真正感兴趣的文档中被中断,首先是因为代码突然消失并且显示了STL源,其次是因为我必须查看按钮栏并移动鼠标,当我跳过时回来,我常常有些困惑.

有没有办法阻止调试器打开STL源文件?某种黑名单,或者甚至更优雅,有些设置在某个地方?到目前为止,我找到了"仅我的代码"设置,但它仅适用于托管代码,我使用本机代码.

sti*_*ijn 12

好的问题,调试器不断跳入一切确实是一个巨大的减速和调试期间的分心.幸运的是有一个解决方案:

打开注册表编辑器,导航到

HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\StepOver
Run Code Online (Sandbox Code Playgroud)

(如果您使用的是64位计算机,请在软件之后添加\ Wow6432Node,这让我头疼不已).

添加新的字符串值(REG_SZ).这个名字并不那么重要,为了清晰起见,我使用NoSTL并将其设置为

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

这告诉调试器不要进入与正则表达式匹配的任何内容,因此它将跳过std命名空间中的每个函数(全局和类级别).通过使用,StepInto您可以为特定方法添加替代,并且您仍然可以使用断点.添加一些经常进入的方法也很方便,但是你知道结果是由头部知道的.

是一个更详细的解释,谷歌NoStepInto更多的分散信息.