博客專欄

        EEPW首頁 > 博客 > 使用Cppcheck對代碼進行靜態檢查

        使用Cppcheck對代碼進行靜態檢查

        發布人:美男子玩編程 時間:2025-03-10 來源:工程師 發布文章

        在汽車行業嵌入式軟件開發的進程中,單元測試環節對代碼進行靜態檢查是至關重要的一環,它能夠提前發現代碼中的潛在缺陷、邏輯錯誤以及不符合編碼規范之處,為后續的集成測試、系統測試筑牢根基,極大程度地降低軟件開發成本,提升軟件質量。 

        圖片

        我之前團隊習慣使用QAC這款強大的靜態分析工具。 然而,QAC 是一款付費軟件,讓許多普通規模的汽車相關企業,尤其是初創型公司或是預算有限的中小企業望而卻步。

        在沒有充足資金投入購買此類工具的情況下,難道就只能放棄高效的靜態檢查了嗎?實則不然。

        在此,強烈推薦使用 Cppcheck 這款開源免費的靜態代碼分析工具。

        圖片

        Cppcheck 擁有諸多優勢,一方面,它支持對 C 和 C++ 代碼進行廣泛且細致的檢查,無論是常見的空指針引用、數組越界、內存泄漏等經典錯誤,還是較為隱晦的未初始化變量使用、邏輯運算優先級混淆等問題,都能被有效識別。

        另一方面,它具有出色的跨平臺特性,無論是 Windows、Linux 還是 Mac 系統,都能無縫適配,這對于汽車嵌入式開發中多樣的開發環境來說極為便利。

        圖片

        下載鏈接:https://cppcheck.sourceforge.io/ 

         這里我使用的是Windows版本安裝完成后,效果如下:

        圖片

        Cppcheck的使用比較簡單,主要分為兩步,一是整理好需要檢查的軟件代碼工程;二是使用Cppcheck進行檢查。


        1


        整理代碼工程

        拷貝一份代碼工程用于做靜態檢查,整理代碼工程只需要保留軟件工程中的所有頭文件和源文件,其他的編譯文件、配置文件等,全部刪除就可以。

        原工程如下:

        圖片

        整理后效果如下:

        圖片


        2


        靜態檢查

        靜態檢查前,需要將Cppcheck軟件的檢查設置修改成我們預期的檢查項,以下是我的靜態檢查設置:

        圖片

        圖片

        點擊分析,選擇目錄,加載需要靜態檢查的軟件工程: 

        圖片

        導入軟件工程后,立刻會開始靜態檢查: 

        圖片

        靜態檢查后可以看到有問題文件的說明,結果如下:

        圖片

        也可以設置過濾,查看不同等級的靜態檢查結果。 

        圖片

        最后,可以在統計中查看檢查結果匯總。

        圖片

        可以將結果導出成PDF文件。

        圖片

        結果參數說明如下:

        • error指代代碼里存在的錯誤項,像內存泄漏這類情況。

        • warning給出的編程改進意見,目的在于避免產生 bug。

        • style涉及編碼風格相關內容,會提示哪些函數未被使用以及多余代碼等情況。

        • portability提示在跨平臺時容易出現的一些問題。

        • performance表明該部分代碼具備可優化的空間。

        • information屬于其他信息,可予以忽略。

        靜態檢查結果PDF如下:

        圖片


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: Cppcheck

        技術專區

        關閉
        主站蜘蛛池模板: 平阴县| 嘉义县| 鱼台县| 大同市| 搜索| 绵竹市| 尚志市| 云龙县| 香港| 永城市| 平南县| 贵港市| 贵德县| 资中县| 泸定县| 海兴县| 华安县| 睢宁县| 乡宁县| 贵州省| 河南省| 克什克腾旗| 涞水县| 合水县| 高要市| 张家港市| 沧源| 邹平县| 康乐县| 新干县| 安国市| 安阳市| 庄河市| 台山市| 嘉峪关市| 扎鲁特旗| 定南县| 阳新县| 海口市| 祁阳县| 新邵县|