Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio中逐步调试期间自动跳过STL函数_Visual Studio_Visual Studio 2010_Debugging - Fatal编程技术网

Visual studio Visual Studio中逐步调试期间自动跳过STL函数

Visual studio Visual Studio中逐步调试期间自动跳过STL函数,visual-studio,visual-studio-2010,debugging,Visual Studio,Visual Studio 2010,Debugging,在分步调试过程中,我经常使用“单步执行”在我正在调试的部分的每一行停止,以查看执行的所有代码 但是库调用可能会中断这个工作流程:调试器将跳转到某个STL文件并继续下去。然后我必须按“跳出”返回到我自己的代码 有没有办法阻止调试器打开STL源文件?黑名单还是某处的设置?我使用本地C++代码工作。不幸的是,“仅我的代码”调试器设置仅适用于托管代码。好问题,调试器不断地跳入所有内容确实是调试过程中的巨大减速和干扰。幸运的是,有一个解决方案: 打开注册表编辑器,导航到 HKLM\SOFTWARE\Mic

在分步调试过程中,我经常使用“单步执行”在我正在调试的部分的每一行停止,以查看执行的所有代码

但是库调用可能会中断这个工作流程:调试器将跳转到某个STL文件并继续下去。然后我必须按“跳出”返回到我自己的代码


有没有办法阻止调试器打开STL源文件?黑名单还是某处的设置?我使用本地C++代码工作。不幸的是,“仅我的代码”调试器设置仅适用于托管代码。

好问题,调试器不断地跳入所有内容确实是调试过程中的巨大减速和干扰。幸运的是,有一个解决方案:

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

HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\StepOver
(如果您在64位计算机上,请在软件后添加\wow6432节点,这在过去会让我头疼)

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

std\:\:.*=NoStepInto
这告诉调试器不要单步执行与该正则表达式匹配的任何操作,这样它将跳过std命名空间中的每个函数(全局和类级别)。 通过使用
StepInto
可以为特定的方法添加覆盖,并且仍然可以使用断点。添加一些您自己的方法也很方便,这些方法经常被采用,但您可以直接知道结果


是一个更详细的解释,谷歌在
NoStepInto
上搜索更多分散的信息。

你不使用F10/F11/Shift+F11???这些是“跨过”、“跨进”、“走出”,还有更多有用的。比搜索按钮有用得多,而且您永远不必把目光从源代码上移开

通常,在VisualStudio中使用键盘快捷键而不是鼠标可以很好地为您服务。不只是为了调试,而是为了一切。学习他们,你会爱上他们的!你可能无法一次学会所有的功能,只需选择一些你经常使用的功能,习惯它们,然后从另一组开始。随着时间的推移,它成为第二天性


很抱歉,这是一个离题的问题,但您最初的问题已经在上一张海报中得到了很好的回答,我想我应该帮您做点别的:)

答案如上所述,但如果您使用VisualStudio 2017或它对您不起作用,请尝试以下方法:

C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\Common7\Packages\Debugger\Visualizers

用记事本或其他任何工具打开以下文件:

default.natjmc

并添加以下行:
std\:\:.*nospinto
“名称”表示该文件中注册表项的值,“操作”是不言自明的

如果您也想添加注册表项(不确定是否有必要),则可以在此处找到它:
\HKEY\u LOCAL\u MACHINE\SOFTWARE\WOW6432Node\Microsoft\VSTA\8.0\NativeDE\StepOver
至少,我的情况就是这样。找到这些花了一个小时,所以我希望它能帮助别人。
如上所述,如果您有32位计算机,请删除“Wow6432Node”。

可能与我在重新安装电脑时再次执行的操作重复。位置仍然是Package\Visualization文件夹。我不需要注册表项。但是这次我不得不在:
default.natstepfilter
文件中添加这一行,而不是
default.natjmc
文件。简单地说,将它添加到与我上面发布的行具有相同格式的文件中。对于visual studio 2019,您必须编辑
C:\Program Files(x86)\Microsoft visual studio\2019\Enterprise\Common7\Packages\Debugger\Visualizers\default.natstepfilter
,格式为:
std\:\:.*nosepinto
。更改会立即应用,无需重新启动IDE。在Visual Studio 2015中如何执行相同的操作?我没有安装VS2015,但我认为类似于我编写的内容或公认的答案应该适用于它。毕竟,他们的模式似乎都很相似。