2012-08-24 37 views

回答

0

在某種程度上。 DevPartner用於檢測錯誤,覆蓋或性能的代碼,並且可以從工具中排除某些名稱空間,某些源文件以及甚至特定的功能。甚至有一種通過名稱空間「std」排除STL的方法。沒有儀器,你不會分析。

防止檢測發生所需的構建選項是'/ nmignore',它具有許多可能的參數。我自己並沒有使用它,所以我將不得不從處理編譯時檢測代碼的人那裏得到詳細信息(我的專業是BoundsChecker的後端)。

1

您需要在C/C++其他命令行選項下的項目設置中指定/ nmignore ::。

函數名稱可以是完整的函數名稱,函數的開始後面是*或*某個模式*,用於包含子句。

所以/ nmignore::主要將排除主要包含在任何文件 /nmignore:main.cpp:myfunc將排除在main.cpp中開始MYFUNC所有功能只 /nmignore:*:STD ::將排除所有文件中的所有std :: namepspace函數。

儀表發生在編譯階段C1和C2之間,所以所有函數都已經從頭文件內聯到源文件中。注意外卡,因爲你可能會排除更多的計劃。

+0

Mark是DevPartner Studio編譯時間檢測的主題專家。 –

+0

正如另外一個人提到的那樣,我想補充說明一下,你可以用儀器編譯你的完整程序,然後用性能或覆蓋儀器重新編譯你感興趣的一個模塊/文件。現在這適用於VS2010之前,但VS2010和2012使用MSBuild,並且一旦您切換檢測設置,所有文件都將被標記爲髒,並且所有文件都將被重新編譯。對不起,但這只是我們必須與MSBuild進行交互的方式。 –

+0

@Mark對於遲到的答案感到抱歉。我試着按照你的建議使用/ nmignore,但沒有結果。這是我做的:在Visual Studio 2010中,在C++>命令行>附加選項下,我添加了/ nmignore :: readDXF(我不想配置的函數)。該函數是庫的一部分,因此我還將/ nmignore選項添加到了我的測試項目中。問題是我看不出有什麼區別,函數readDXF仍然是剖析的。 – undu

0

我有一些運氣沒有任何儀器編譯完整的程序,然後打開儀器並重新編譯一個文件。但是,這是爲了檢漏,而不是分析。

相關問題