在逐步调试期间,我经常使用“step into”在我正在调试的部分中的每一行停止,以查看我所有已执行的代码。
但是库调用会破坏这个工作流程:调试器会跳转到一些 STL 文件并继续在那里。然后我必须按“跳出”回到我自己的代码。
有没有办法阻止调试器打开 STL 源文件?黑名单还是某个地方的设置?我使用 native C++ 代码。不幸的是,“仅我的代码”调试器设置仅适用于托管代码。
最佳答案
好问题,调试器不断跳入所有内容确实是调试过程中的巨大减速和分心。幸运的是有一个解决方案:
打开您的注册表编辑器,导航到
HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\StepOver
(如果您使用的是 64 位机器,请在 SOFTWARE 之后添加\Wow6432Node,这让我过去很头疼)。
添加一个新的字符串值 (REG_SZ)。名称不是那么重要,为了清楚起见,我使用 NoSTL 并将其值设置为
std\:\:.*=NoStepInto
这告诉调试器不要进入与该正则表达式匹配的任何内容,因此它将跳过 std 命名空间中的每个函数(全局和类级别)。
通过使用
StepInto
您可以为特定方法添加覆盖,并且您仍然可以在类(class)之外使用断点。添加一些您自己的方法也很方便,这些方法经常进入,但您可以一目了然地知道结果。Here更详细的解释,google on
NoStepInto
获取更多零散信息。
关于visual-studio - 在 Visual Studio 中逐步调试期间自动跳过 STL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5334414/