您提到的C#特性被称为“只是我的代码”。不幸的是,Visual Studio没有以相同的方式为C++实现它。作为documentation说:
C++仅我的代码比.NET框架和JavaScript就 我的代码不同,因为步进行为是独立的调用堆栈 行为。
有一种变通方法,但是:
您可以创建自己的.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>
现在,当我在Visual Studio和步调试进入的东西,所有的C++标准库函数都会被跳过。
请注意,XML文件的实际格式未经Visual Studio严格验证。我实际上使用了在Visual Studio 2015 documentation中解释的更简单的形式。
怎么样不按“步入”,而是按“步过”? – mcsim
当你按下“step into”你*进入* std :: string'构造函数。就像“步入”是*假设*做的。 –
然后它遍历我的功能,我希望它进入我的功能,但只是我的功能,例如在 p0-> fork(“p1”); 它会进入xstring,我希望它能够进入我实现的Process fork函数。 –