1. 程式人生 > >靜態程式碼檢查工具 cppcheck 的使用

靜態程式碼檢查工具 cppcheck 的使用

      CppCheck是一個C/C++程式碼缺陷靜態檢查工具。不同於C/C++編譯器及其它分析工具,CppCheck只檢查編譯器檢查不出來的bug,不檢查語法錯誤。所謂靜態程式碼檢查就是使用一個工具檢查我們寫的程式碼是否安全和健壯,是否有隱藏的問題。

比如無意間寫了這樣的程式碼: 

int n = 10;
char* buffer = new char[n];
buffer[n] = 0;
         這完全是符合語法規範的,但是靜態程式碼檢查工具會提示此處會溢位。也就是說,它是一個更加嚴格的編譯器。目前使用比較廣泛的C/C++靜態程式碼檢查工具有cppcheck 和  pc-lint等。
pc-lint是資格最老,最強力的程式碼檢查工具,但是是收費軟體,並且配置起來有一點點麻煩。

CppCheck 是免費的開源軟體。使用起來也很方便。 

使用方式:

一、GUI方式:安裝完就可以使用裡面的cppcheck-gui來檢測程式碼。介面如下:

二、命令列方式:

三、整合到IDE開發環境中使用:

1、VS

  • click the Add button
  • set the Title, for example Cppcheck
  • set Command to C:\Program Files (x86)\Cppcheck\cppcheck.exe
  • set Arguments to --quiet --verbose --template=vs $(ItemPath)
  • set Initial Directory to $(ItemDir)
  • make sure Use Output window checkbox is enabled
  • click on the Move Up button repeatedly until your entry is at the top of the list, this will make it easier to identify you new command as you can count on it being calledTools.ExternalCommand1
  • click OK.

2、Qt Creator

     在QtCreator中點選:tools=>external=>config...=>add 彈出如下對話方塊:

填入下列引數:

設定完後就可以用cppcheck檢查指定目錄下的程式碼檔案:tools=>external=>cppcheck 開始檢查。

相關推薦

靜態程式碼檢查工具 cppcheck 的使用

      CppCheck是一個C/C++程式碼缺陷靜態檢查工具。不同於C/C++編譯器及其它分析工具,CppCheck只檢查編譯器檢查不出來的bug,不檢查語法錯誤。所謂靜態程式碼檢查就是使用一個工具檢查我們寫的程式碼是否安全和健壯,是否有隱藏的問題。 比如無意間寫了這

Android靜態程式碼檢查工具Lint

轉自 https://blog.csdn.net/u012317510/article/details/78221218   前言 Android提供了一個叫做Lint的靜態程式碼檢查工具。Lint工具可以幫助你檢查可能影響應用質量和效能的程式碼問題。該工具會報告檢測到的每個問

靜態程式碼檢查工具簡介

靜態程式碼檢查工具簡介 在 Java 軟體開發過程中,開發團隊往往要花費大量的時間和精力發現並修改程式碼缺陷。傳統的程式碼複審、同行評審,通過人工方式來檢查缺陷仍然是一件耗時耗力的事情。Java 靜態程式碼分析(static code analysis)工具能夠在程式碼構建過程中幫助開發人員快速

C++效能系列之靜態程式碼檢查工具介紹(一)

FxCop Integrator允許將獨立的FxCop(1.36或10.0)和Code Metrics PowerTool 10.0整合到VS2010中。 最新版本(2.0.0 RTW)包含以下新功能: 支援使用程式碼度量PowerTool的計算程式碼

JS 的靜態程式碼檢查工具 Flow

無意中看到了VUE的原始碼,沒看幾行就被看蒙了。 Vue: Class<Component> const vm: Component = this   想了一下,查了查相關資料,是不是ES 6的新語法。 確實不是。 是Facebook開源的JS靜態檢查工具用法。

C#靜態程式碼檢查工具StyleCode -- 初探

最近我們Advent Data Service (ADS) 在專案上需要按照程式碼規範進行程式碼的編寫工作,以方便將來程式碼的閱讀與維護。 但是人工檢查起來容易遺漏或者格式不統一, ReSharper又是收費的,而且費用不菲。 於是美國的同事推薦了我們一款開源工

5個靜態程式碼檢查工具

FlexeLint 支援windows,linux http://www.gimpel.com/html/flex.htm pclint 只支援 windows http://www.gimpel.com/html/pcl.htm splint 只支援c程式碼的檔案 c

Cppcheck 1 54 C/C++靜態程式碼分析工具

64-bit portabilityCheck if there is 64-bit portability issues:assign address to/from int/longAuto VariablesA pointer to a variable is only valid as long as

靜態程式碼檢查cppcheck整體瞭解

cppcheck是一個C++開源的靜態程式碼檢查工具。基本上編譯器不檢查的問題他都檢查,效果還是不錯的。工作中用到cppcheck作為程式碼檢查,網上現在能搜到的關於cppcheck相關資訊也不多,自己也在這裡記錄一下。其實引入cppcheck確實能為程式碼提供一些基本風險檢

OC靜態程式碼檢查實戰

此文已由作者楊曉授權網易雲社群釋出。 歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。 在Mac OS系統上,採用Xcodebuild Analyze命令和OClint工具,對iOS專案進行靜態程式碼檢查,輸出視覺化結果。然後將專案持續整合至CI平臺,並使用PMD外掛進行錯誤統計的展示。對

PVS-Studio C/C++/C++11 靜態程式碼分析工具

  靜態程式碼分析儀是一種檢測程式碼缺陷、分析對比 商業程式碼的工具,它分析原始碼和它生成的目標 檔案,但並不實際執行原始碼。應用於對安全性、 穩定性要求很高的領域,比如航天、國防、工業 控制、金融等就需要嚴格的程式碼分析工具。PVS-Studio 能發現程式碼中一些潛

PHP工具箱:PHPStan —— PHP 靜態程式碼分析工具

PHPStan:無需寫測試就能找到程式碼中的 Bug 每當我看到開發人員從 Java 或 C# 等編譯語言切換到 PHP 這樣的解釋語言時解放了生產力後感到很高興。除了這些常規的執行模型(發起、處理請求和結束請求)和更短的反饋環(無需等待編譯器)外,還有一個能解決開發人員日常問題的開源框架

靜態程式碼分析工具清單:開源篇(各語言)

本文是一個靜態程式碼分析工具的清單,共有26個工具。包括4個.NET工具、2個Ada工具、7個C++工具、4個Java工具、2個JavaScript工具、1個Opa工具、2個Packaging工具、3個Perl工具、1個Python工具。 1.NET .NET Compiler Platfo

技術管理者---提升研發程式碼質量---程式碼檢查工具Sonar

本文是《技術管理者---提升研發程式碼質量》系列文章第二篇,第一篇整體介紹請看博文《技術管理者---提升研發程式碼質量---總體方法論》。本文重點講三部分內容:1)sonar是什麼,研發體系如何利用sonar提供程式碼質量;2)開發過程中如何使用Sonar保證程式碼質量;3)

PVS-Studio C/C++/C++11 靜態程式碼分析工具

靜態程式碼分析儀是一種檢測程式碼缺陷、分析對比 商業程式碼的工具,它分析原始碼和它生成的目標 檔案,但並不實際執行原始碼。應用於對安全性、 穩定性要求很高的領域,比如航天、國防、工業 控制、金融等就需要嚴格的程式碼分析工具。PVS-Studio 能發現程式碼中一些潛在

JS程式碼檢查工具ESLint

前面的話   ESLint是一個JavaScript程式碼靜態檢查工具,可以檢查JavaScript的語法錯誤,提示潛在的bug,可以有效提高程式碼質量,維持前端團隊高度一致的編碼風格。ESLint不但提供一些預設的規則,也提供使用者自定義規則來約束所寫的JavaScript程式碼。本文將詳細介紹ESLin

PHP靜態程式碼掃描工具PHPCheckStyle果真如此不靠譜嗎?

今天嘗試用了下PHPCheckStyle看看對PHP程式碼做靜態掃描效果如何,結果誤報率,,,摻不忍睹啊,是不是我哪裡用錯了?原始碼:<?php $first=$_GET["first"]; $value=strval($_GET["tainted"]); echo

程式碼檢查工具--findBugs

 “所謂讀書的意義,大概就是讓人眼界更開闊,對自我有更清醒的認識,而不至於狂妄。一個人讀的書越多,越會意識到自己的匱乏。” 偶然看到中國好聲音,健哥,語出驚人,建議多讀讀書籍 “讀書同樣需要自我約束和自我強制。童話讀起來毫不費力,但人的一生不可能只是讀童話,還

PMD程式碼檢查工具

C:\tools\pmd-4.1\bin>pmd C:\project\***\src html>a.html rulese ts/unusedcode.xml,rulesets/basic.xml PMD 包含 16 個規則集,涵蓋了 Java 的各種常見問題,

如何寫靜態程式碼檢查規則(JAVA)

一.概述 產品線最近在線上出了兩個相似的問題:開發人員在寫迴圈程式碼的時候沒有在迴圈體內使用到迴圈變數而發生了錯誤,比如如下程式碼: 1 List<Integer> list = getList(); 2 for(int i = 0;i <