Gimpel Software推出C和C ++的首選靜態分析工具 PC-lint Plus,不再維護PC-lint/FlexeLint。
Gimpel Software已不再維護PC-lint/FlexeLint版本9,最終更新是2014年釋出的版本9.00L。Gimpel Software在2018年底之前為PC-lint/FlexeLint提供技術支援。
Gimpel Software已推出新產品PC-lint Plus——C和C ++的首選靜態分析工具。
簡單介紹一下PC-lint Plus:
PC-lint Plus是一種靜態分析工具,通過分析C和C ++原始碼來發現軟體中的缺陷。與編譯器一樣,PC-lint Plus會解析原始碼檔案,執行語義分析,並構建一個抽象語法樹來表示程式。PC-lint Plus
PC-lint Plus可在Windows,Linux和macOS上執行,並可配置為分析幾乎任何平臺的程式碼
適用平臺
Windows 7/8/10(32位和64位),Linux(64位)和macOS。PC-lint Plus可以分析幾乎任何平臺的C / C ++原始碼。
編碼標準
PC-lint Plus可以檢查違反內部程式碼指南的情況,以及分析是否符合MISRA等行業標準。數以千計的高度可配置的訊息可被啟動來用於支援許多不同的程式碼指南,例如控制結構要使用大括號,條件表示式中的賦值規則,明確說明運算子優先順序等等。可以在可重用配置檔案中指定所需資訊的集合,以便在專案和團隊之間分享。
MISRA支援
PC-lint Plus為MISRA標準提供行業領先的支援,包括MISRA C 2012,MISRA C 2004和MISRA C ++ 2008及其附錄和正誤表。使用隨PC-lint Plus一起的配置檔案可以快速啟用MISRA檢查。可以啟用和禁用單個規則,並且可以逐個控制資訊。
資訊抑制
PC-lint Plus包含多種靈活的方法來控制資訊抑制,即是否會發出或忽略特定的資訊例項。可以在每個檔案,每個函式,每個語句的基礎上全域性啟用或抑制資訊,具體取決於資訊所引用的類,結構,變數,函式或巨集的名稱,或者在單個行上。PC-lint Plus可以將第三方或庫原始碼與專案的其餘部分割槽分開來,並且可以對這些程式碼應用單獨的抑制策略。
-
最簡單的抑制選項,+e#和-e#,在遇到它們之後的所有地方啟用或禁用資訊#。
-
通過新增// lint!e#形式的註釋來暫時禁用資訊#。
-
提及特定變數,類,結構或函式的訊息可以使用-esym或+esym來抑制或啟用,例如-esym(#,name)會在訊息的特定例項提到name時禁止資訊#。
-
提到其他文字的資訊可以使用-estring和+estring來抑制或啟用。
-
emacro選項在指定巨集的擴充套件中啟用或禁用資訊。
-
lint註釋中的各種抑制可以影響下一個或封閉的語句,宣告或表示式。
文件和支援
PC-lint Plus與PDF格式的手冊一起提供下載,手冊描述了PC-lint Plus的配置,操作,選項和資訊。介紹和安裝部分可幫助您快速入門。每個選項和資訊都有詳細描述,並且很容易找到參考表和目錄。版本歷史記錄部分記錄了版本之間的更改。
原始碼安全
PC-lint Plus在您的開發人員工作站或您自己的伺服器上本地執行。它不連線到網際網路或以其他方式使用網路連線。您的原始碼只存在您的裝置上,它不提交任何其他形式的資料。
那麼PC-lint Plus相比PC-lint/FlexeLint有什麼新功能呢?
現代C ++支援
PC-lint Plus完全支援C++ 11,C++ 14和C++ 17標準,它利用clang來執行C和C++原始碼的詞法分析和解析。Clang定期更新合併到PC-lint Plus中,確保及時支援最新的語言功能。因此,PC-lint Plus支援最新的編譯器,包括當前版本的GCC和clang以及Visual Studio 2015/2017。
改進數值追蹤
數值跟蹤現在可以儲存值的範圍,而不僅僅是單個值,這使得PC-lint Plus可以在確切的值未知時進一步瞭解您的程式碼,但它們可能受條件邏輯的限制。
並行分析
PC-lint Plus通過使用單獨的執行緒分析每個原始碼模組來支援專案的並行分析,通過充分利用可用硬體加速分析過程。
簡化配置
新的配置工具通過從編譯器和構建過程中提取資訊來自動化配置過程,以生成與構建專案的方式相匹配的全面而準確的配置。
改進了MISRA C 2012支援
PC-lint Plus通過新資訊進一步擴充套件了現有的MISRA C 2012支援,改進了資訊措辭,更清楚地解釋了診斷出來的違規行為。支援AMD-1,以及調整某些MISRA規則的行為以匹配常見用例和替代規則解釋說明。PC-lint Plus還支援essential type(基本型別)細分,這些細分可以準確顯示錶達式的不同部分如何促成表示式的最終essential type,以幫助理解與essential type相關的資訊。
增強診斷功能
通過提供問題的精確位置,突出顯示資訊中引用的關鍵結構,以及引入補充資訊來進一步瞭解診斷髮布的條件,PC-lint Plus的診斷功能得到了極大改進。
現在可以將資訊組織到使用者定義的命名組中以便於操作,引數化抑制可以本地化到特定程式碼區域,可以使用正規表示式抑制訊息,使用-file來抑制指定檔案中的資訊。
改進函式語義
PC-lint Plus為200多種標準庫函式提供內建函式語義。現在當函式體可用時,將驗證使用-sem選項定義的自定義返回語義。例如,如果函式在特定執行期間實際返回null,而指定函式沒有返回null的語義將導致診斷開始。
現在可以為單個函式過載和函式模板指定使用者定義的函式語義。
其他特性
除了上述新功能和增強功能外,PC-lint Plus還包含許多小改進,包括內建幫助系統,-deprecate選項現在支援棄用型別和選項,改進了printf和scanf格式字串檢查以及位置引數支援 ,能夠儲存和恢復整個選項環境,改進資訊措辭,以及數百種新診斷(包括許多致力於使用新C ++語言功能的診斷)。