2017-11-25 34 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

它工作你是一個神謝謝:) –

相關問題