C++代碼靜態檢測
一,CppCheck
二,TscanCode
三,PVS-studio
代碼靜態檢測,指的是程序在非運行狀態下,對代碼進行語法分析,檢測其規范性和語法錯誤的一種操作。主要借助的都是一些第三方工具,比如CppCheck,TscanCode,PVS-studio等,本文主要對這幾種常用的檢測工具的使用進行介紹,並且都附上下載鏈接以及免費破解版。(付費的代碼檢測工具不在討論范圍內,,,)
一,CppCheck
(下載地址:CppCheck官網)
cppcheck 是一個靜態代碼檢查工具,支持c, c++ 代碼;作為編譯器的一種補充檢查,cppcheck對產品的源代碼執行嚴格的邏輯檢查。 執行的檢查包括:
(1) 自動變量檢查
(2) 數組的邊界檢查
(3)class類檢查
(4) 過期的函數,廢棄函數調用檢查
(5) 異常內存使用,釋放檢查
(6) 內存泄漏檢查,主要是通過內存引用指針
(7) 操作系統資源釋放檢查,中斷,文件描述符等
(8) 異常STL 函數使用檢查
(9) 代碼格式錯誤,以及性能因素檢查
我們可以使用它的windows客戶端進行代碼檢測,也可以在vs中鍵入cppcheck插件,在VS中檢測代碼。
1,使用CppCheck客戶端檢測
打開CppCheck軟件,文件-新建項目文件,項目名隨便輸入
“項目頁簽”-“根目錄”,輸入c++代碼的目錄,然后點擊ok
“visual studio”頁簽,可以直接選擇vs項目,點擊ok
檢驗結果如下:
1)選擇上面的菜單按鈕,可以過濾檢測的錯誤,比如只顯示“錯誤”或“警告”信息;
2) 中間的列表框就是檢測出不符合規范的代碼文件和行數,單擊會在下方提示具體的錯誤,比如上圖“Member variable ‘CDealAFOF::m_pConfig’ is not initialized in the constructor.”,成員變量沒有初始化。
3)雙擊中間列表框某一行,可直接打開對應代碼文件(使用的默認文本編輯器)
2,在vs中使用CppCheck
點擊“添加”按鈕,分別填入以下內容:
1)標題:外部工具的名稱,可以隨便填,此處為CppCheck
2)命令:CppCheck安裝目錄下的cppcheck.exe完整路徑
3)參數:–enable=all 選出所有不符合規范的地方,
$(ItemDir)是指當前工程,可以通過右側的按鈕進行選擇檢測范圍:當前工程/整個解決 方案。
4)使用輸出窗口:將檢測結果輸出到visual studio的輸出欄。
此時再打開“工具”菜單,會發現下面多了一個“CppCheck”按鈕,點擊,開始檢測,檢測
結果顯示如下:
二,TscanCode
(下載地址:https://github.com/Tencent/TscanCode)
TscanCode是騰訊公司開發的一款開源的靜態代碼檢測工具,支持windows,linux和mac系統,支持C/C++,C#,Lua語言。
TscanCode支持以下類型規則掃描:
1)空指針檢查,包含可疑的空指針,判空后解引用比如Crash等共3類subid檢查。
2)數據越界,Sprintf_S越界共1類subid檢查。
3)內存泄漏,分配和釋放不匹配同1類subid檢查。
4)邏輯錯誤,重復的代碼分支,bool類型和INT進行比較,表達式永遠True或者false等共18類檢查。
5)可疑代碼檢查,if判斷中含有可疑的=號,自由變量返回局部變量等共計15類檢查。
6)運算錯誤,判斷無符號數小於0,對bool類型進行++自增等,共計11類檢查。
它支持配置不同的規則包,選擇不同的掃描線程,不同的掃描語言來對代碼的規范性和安全性進行檢測。我們默認使用基礎規則包。
安裝完畢后,打開軟件,選擇“掃描文件夾”,加載工程所在目錄,點擊“開始掃描”,掃描完成后會彈出一個掃描結果對話框。
嚴重級別分為致命,嚴重,警告,提示,風格五種,可以進行過濾,也可以進行排序。
雙擊某一行,會彈出窗口,直接顯示具體代碼:
報錯的原因是因為:
m_szDBFFields數組最大下標為253,但是上面的校驗只檢驗到if(iNum < 0 || iNum > 255),會存在數組越界的風險。
TscanCode的更加具體的使用可以在git中查看使用文檔。
三,PVS-studio
(下載地址:https://www.viva64.com/en/pvs-studio/)
PVS-studio既集成在Visual Studio開發環境中使用,也可以作為一個windows程序單獨啟動。
PVS-studio是一款收費軟件,它的收費主要體現在雙擊定位到具體代碼處,代碼檢測是不收費的。當然在這里,我也給大家找到了免費版的…(PVS-studio破解版下載)
1,安裝
解壓后,雙擊PVS-Studio_setup.exe直接安裝。選擇組件時,會自動檢測出當前電腦上安裝的vs環境,一般默認就好。
2,破解
將解壓包crack文件夾下的PVS-Studio.exe 文件復制到PVS-Studio的安裝路徑中的“x64”或“x86”文件夾中(用戶需根據自己的操作系統選擇,64位就進入“x64”文件夾,32位就進入“x86”文件夾),默認路徑在C:\Program Files (x86)\PVS-Studio。
之后雙擊打開“PVS-Studio.exe”文件,這里不會彈出任何文件,點擊即可完成破解。
3,使用
打開本機的Visual Studio,可以在上方的工具欄看到PVS_studio
選擇“Check Current File”,檢驗結果如下:
雙擊某一行,可直接定位到具體代碼處,並高亮顯示,同時還有消息提示,便於直接修改不規范的代碼。
Windows客戶端版可以直接運行exe並進行檢測,具體操作感興趣的可以自己去研究一下,這里不再講述。
————————————————
版權聲明:本文為CSDN博主「Simple Simple」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/bajianxiaofendui/article/details/86547997