好吧,在调试时,例如当我在简单的字符串声明上设置断点时
string a;
Run Code Online (Sandbox Code Playgroud)
然后按 f11(步入)我的调试器步入xstring文件,但我不想要它。我希望它只进入我的代码。这适用于 C# 项目,但不适用于 C++ 项目。
我如何在 Visual Studio 中为 C++ 项目定义它:

我启用了“仅我的代码”,但我不知道该怎么办。我只是不想让它介入我的文件。
您所指的 C# 功能称为“Just My Code”。不幸的是,Visual Studio 没有以与 C++ 相同的方式实现它。正如文档所说:
C++ Just My Code 与 .NET Framework 和 JavaScript Just My Code 不同,因为单步执行行为独立于调用堆栈行为。
不过,有一个解决方法:
您可以创建自己的
.natstepfilter并.natjmc自定义%USERPROFILE%\My Documents\Visual Studio 2015\Visualizers.
尽管文档中存在拼写错误(“2015”)并且其设计方式极其复杂,但这个技巧确实有效!
例如,在我的计算机上安装 Visual Studio 2017 后,我可以转到一个包含以下内容的C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Packages\Debugger\Visualizers添加文件:.natstepfilter
<?xml version="1.0" encoding="utf-8"?>
<StepFilter xmlns="http://schemas.microsoft.com/vstudio/debugger/natstepfilter/2010">
<Function>
<Name>std::.*</Name>
<Action>NoStepInto</Action>
</Function>
</StepFilter>
Run Code Online (Sandbox Code Playgroud)
现在,当我在 Visual Studio 中调试并进入某些内容时,所有 C++ 标准库函数都会被跳过。
请注意,Visual Studio 并未非常严格地验证 XML 文件的实际格式。我实际上使用了Visual Studio 2015 文档中解释的更简单的形式。