cppcheck指令常用選項

weixin_33895657 發表於 2018-09-15
cppcheck  --enable=all  -i ./samples --inconclusive --xml --xml-version=2 ./* 2>  %WORKSPACE%/cppcheck.xml

--enable=all

預設情況下,只顯示錯誤訊息,可以通過 --enable 命令啟用更多檢查

--enable=<id>        Enable additional checks. The available ids are:
                          * all
                                  Enable all checks. It is recommended to only
                                  use --enable=all when the whole program is
                                  scanned, because this enables unusedFunction.
                          * warning
                                  Enable warning messages
                          * style
                                  Enable all coding style checks. All messages
                                  with the severities 'style', 'performance' and
                                  'portability' are enabled.
                          * performance
                                  Enable performance messages
                          * portability
                                  Enable portability messages
                          * information
                                  Enable information messages
                          * unusedFunction
                                  Check for unused functions. It is recommend
                                  to only enable this when the whole program is
                                  scanned.
                          * missingInclude
                                  Warn if there are missing includes. For
                                  detailed information, use '--check-config'.
                         Several ids can be given if you separate them with
                         commas. See also --std

啟用警告訊息:

cppcheck --enable=warning file.c

啟用效能訊息:

cppcheck --enable=performance file.c

啟用資訊訊息:

cppcheck --enable=information file.c

由於歷史原因 --enable=style 可以啟用警告、效能、可移植性和樣式資訊。當使用舊 XML 格式時,這些都由 style 表示:

cppcheck --enable=style file.c

啟用警告和效能訊息:

cppcheck --enable=warning,performance file.c

啟用 unusedFunction 檢查。這不能通過 --enable=style 啟用,因為不會在庫中正常工作。

cppcheck --enable=unusedFunction file.c

啟用所有訊息:

cppcheck --enable=all

-i

-i <dir or file>

提供一個原始檔或原始檔目錄以排除從檢查。這隻適用於原始檔原始檔包含的標頭檔案不匹配。目錄名與路徑的所有部分相匹配。

--inconclusive

--inconclusive

允許Cppcheck報告,即使分析是不確定。這個選項有假陽性。每個結果在你知道它是否存在之前,必須仔細調查好或壞。

不確定訊息

預設情況下,如果確定,Cppcheck 只顯示錯誤訊息。如果使用 --inconclusive,當分析不確定時,也會寫錯誤訊息。

cppcheck --inconclusive path

選擇XML檔案版本。目前只有版本2是可用的。

儲存結果到檔案中

很多時候,會希望將結果儲存在一個檔案中,可以使用 shell 的管道重定向錯誤輸出到一個檔案:

cppcheck file.c 2> err.txt

多執行緒檢查

選項 -j 用於指定需要使用的執行緒數,例如,使用 4 個執行緒檢查資料夾中的檔案:

cppcheck -j 4 path

XML 輸出

Cppcheck 可以生成 XML 格式的輸出。有一箇舊的 XML 格式(version 1)和一個新的 XML 格式(version 2)。如果可以,請使用新版本。

舊版本保持向後相容性。它不會改變,但有一天可能會被刪除。使用 --xml 支援這種格式。

新版本修復一些舊格式的問題。新格式可能會在 cppcheck 的未來版本中更新,並帶有新的屬性和元素。用於檢查檔案並以新的 XML 格式輸出錯誤的示例命令:

cppcheck --xml-version=2 file.cpp

-xml

--xml 將結果以xml格式寫入錯誤流(stderr)。

--xml-version

--xml-version=<version>