2017-11-25 20 views
0

好了,所以在调试时,例如,当我把我的断点简单的字符串声明在Visual Studio 2017中调试C++应用程序进入不是我的代码有没有办法关闭它?

string a; 

,然后按F11(踏入)我调试步入xstring文件,我不希望它。我希望它能够进入JUST MY代码,它可以在C#tho中正常工作。

[C++] https://i.imgur.com/qvPfnwF.png

[C#,我希望它是用C什么++也] https://i.imgur.com/j3SAgJr.png

我有 “仅我的代码” 启用,我不知道该怎么办。我只是不希望它进入不是我的文件。

+4

怎么样不按“步入”,而是按“步过”? – mcsim

+1

当你按下“step into”你*进入* std :: string'构造函数。就像“步入”是*假设*做的。 –

+0

然后它遍历我的功能,我希望它进入我的功能,但只是我的功能,例如在 p0-> fork(“p1”); 它会进入xstring,我希望它能够进入我实现的Process fork函数。 –

回答

0

您提到的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中解释的更简单的形式。

+0

将尝试它是否有效,你是某种神! –

+0

它工作你是一个神谢谢:) –

相关问题