欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

基于MISRA-C和VSCode的代碼靜態(tài)檢查的開源解決方案-創(chuàng)新互聯

基于MISRA-C和VS Code的代碼靜態(tài)檢查的開源解決方案
  • 簡介
  • 工具
    • 配置步驟

創(chuàng)新互聯主營無為網站建設的網絡公司,主營網站建設方案,手機APP定制開發(fā),無為h5小程序設計搭建,無為網站營銷推廣歡迎無為等地區(qū)企業(yè)咨詢簡介

MISRA-C是汽車嵌入式軟件開發(fā)中常用的靜態(tài)代碼檢查工具。常用的商用靜態(tài)代碼分析工具,比如QAC、Coverity都支持基于MISRA-C的靜態(tài)代碼檢查。

由于License等等問題,通常我們在一輪開發(fā)結束后進行代碼的靜態(tài)檢查,如果可以在開發(fā)過程中能夠直接發(fā)現問題,那就方便多了。

本文介紹了基于MISRA-C的代碼靜態(tài)檢查的開源解決方案,結合目前流行的VS Code,實現在編碼過程中實時地對代碼進行檢查,適合MCAL、BSW開發(fā)以及其他需要手寫代碼的同學。

工具
  • VS Code
    目前比較流行的開發(fā)工具,結合豐富的擴展實現不同需求
    官網鏈接
  • C/C++ Advanced Lint
    VS Code擴展,用來實現代碼的靜態(tài)分析,支持Cppcheck, clang等靜態(tài)代碼分析工具
  • CppCheck
    C/C++靜態(tài)代碼檢查工具,支持MISRA-C規(guī)則
    官網鏈接
    GitHub倉庫
配置步驟
  1. 安裝Cppcheck工具,在官網下載安裝即可
    在這里插入圖片描述

  2. 將Cppcheck安裝路徑加入系統path,否則擴展找不到可執(zhí)行文件,會報錯
    在這里插入圖片描述

  3. VS Code中安裝C/C++ Advanced Lint擴展
    在這里插入圖片描述

  4. 配置C/C++ Advanced Lint擴展
    4.1 Cppcheck配置
    C/C++ Advanced Lint支持flexelint,lizard,flawfinder,clang,cppcheck多種代碼檢查工具,這里我們只使用Cppcheck,在VS Code的擴展設置里將其他幾種工具的使能勾掉,否則VS Code會報錯在這里插入圖片描述
    或者在setting.json中直接配置成false
    在這里插入圖片描述
    到這里其實已經可以進行代碼的檢查了,如下圖中檢查出數組越界的錯誤,不過沒有用MISRA-C規(guī)則檢查
    在這里插入圖片描述
    4.2 MISRA-C規(guī)則的配置

    我們需要Cppcheck使用MISRA-C規(guī)則檢查代碼,將Cppcheck的addon配置成misra
    在這里插入圖片描述

    這樣就可以進行基于MISRA-C規(guī)則的靜態(tài)代碼檢查了,下面代碼中檢查出不符合MISRA-C 2012 的 Rule 8.4,Rule 8.2
    在這里插入圖片描述

    不過這樣還不夠方便,我們希望看到Rule 8.4的具體內容,這也是本文的重點

    找一個你喜歡的路徑,創(chuàng)建一個misra.json文件,寫入

    {"script": "misra.py",
        "args": [
            "--rule-texts=C:\\MISRA_C_2012.txt"
        ]
    }

    misra.py是Cppcheck工具自己帶的腳本,不用關心,MISRA_C_2012.txt是MISRA-C規(guī)則文本,可以在網上找到。

    這里需要注意的是misra.json和MISRA_C_2012.txt兩個文件都不要放到*:\Program Files\* 路徑下面,會報錯,我這里放到了C盤的根目錄下面

    (這里多提一句,盡量不要把開發(fā)用的軟件裝到Program Files路徑下面,會有莫名其妙的問題)

    在setting.json中寫入下面的內容
    在這里插入圖片描述

    這樣就可以在VS Code里直接看到MISRA-C規(guī)則的內容啦
    在這里插入圖片描述

    鼠標放到打波浪線的代碼處,也可以有提示
    在這里插入圖片描述
    這里有一個問題,就是同一個條目會重復顯示,不過問題也不大

    上面的思路來自于Cppcheck的官方Manual
    在這里插入圖片描述

    4.3 提示等級的選擇

    代碼量大了以后,會檢查出很多information級別的錯誤,通常是MISRA-C中對代碼風格的檢查,而我們通常關心warning或者error級別的錯誤。VS Code里可以通過下面的方法選擇錯誤提示的級別
    在這里插入圖片描述

    4.4 頭文件的引用
    大型工程通常涉及到頭文件的引用,需要添加引用路徑

    這里最好在本地的setting.json中配置,因為不同的工程代碼的引用路徑不同
    在這里插入圖片描述

本次分享到此結束,有問題請各位同學留言。

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網站題目:基于MISRA-C和VSCode的代碼靜態(tài)檢查的開源解決方案-創(chuàng)新互聯
分享地址:http://chinadenli.net/article38/cdocpp.html

成都網站建設公司_創(chuàng)新互聯,為您提供小程序開發(fā)外貿建站動態(tài)網站網站制作網站策劃網站維護

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站優(yōu)化排名