亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

C++代碼審查工具Cppcheck和TscanCode

星夢妙者
發(fā)布: 2025-08-30 09:12:28
原創(chuàng)
890人瀏覽過

cppcheck 概述

cppcheck 是一款專為 C 和 C++ 代碼設計的靜態(tài)代碼檢查工具,作為編譯器的補充,cppcheck 能夠對源代碼進行深入的邏輯檢查。

它幫助開發(fā)和測試工程師從代碼層面發(fā)現(xiàn)問題,專注于包括邏輯錯誤、可疑代碼、運算錯誤、空指針、越界錯誤、內存泄漏等6個大類,共52個小類的問題。

與其他靜態(tài)檢查工具相比,cppcheck 以其簡單易用、快速執(zhí)行和開源的優(yōu)勢而著稱。

cppcheck 執(zhí)行的檢查包括:1. 自動變量檢查 2. 數(shù)組邊界檢查 3. 類檢查 4. 過時函數(shù)和廢棄函數(shù)調用檢查 5. 異常內存使用和釋放檢查 6. 內存泄漏檢查,主要通過內存引用指針 7. 操作系統(tǒng)資源釋放檢查,如中斷、文件描述符等 8. 異常 STL 函數(shù)使用檢查 9. 代碼格式錯誤和性能因素檢查

立即學習C++免費學習筆記(深入)”;

cppcheck 的默認使用方法:

$ cppcheck --enable=all test.cpp
$ cppcheck --enable=all ./src
登錄后復制

可以通過

--output-file
登錄后復制
選項將檢查結果存儲到
report.txt
登錄后復制
中:

$ cppcheck --enable=all test.cpp --output-file=report.txt
登錄后復制

也可以使用輸出重定向:

$ cppcheck --enable=all test.cpp 2> report.txt
登錄后復制

cppcheck 的安裝可以從其官方網(wǎng)站(Cppcheck - A tool for static C/C++ code analysis)下載最新版本的可執(zhí)行安裝包(如

cppcheck-2.7-x64-Setup.msi
登錄后復制
),按照安裝向導進行安裝。

C++代碼審查工具Cppcheck和TscanCode

cppcheck 對94個例子的分析結果非常到位,但對于中文注釋的代碼預覽可能不太友好。

C++代碼審查工具Cppcheck和TscanCode

除了圖形用戶界面,cppcheck 還支持與多種 IDE(如 VS、Eclipse、QtCreator 等)和版本管理系統(tǒng)(如 Tortoise SVN、Git)集成使用。用戶可以對每次分析進行配置,甚至自定義規(guī)則,并將這些配置作為項目文件保存或重新加載。

分析結果可以保存為格式化的純文本或 XML 格式,并通過 Python pygments 將 XML 轉換為 HTML。

在檢測能力上,cppcheck 優(yōu)于 TscanCode,但在易用性上,TscanCode 則更勝一籌。不過,cppcheck 在某些情況下可能會出現(xiàn)誤報。

接下來介紹騰訊開源的 TscanCode。

TscanCode 概述

TscanCode 是騰訊研發(fā)的靜態(tài)代碼掃描工具,最初基于 cppcheck 二次開發(fā),后續(xù)進行了自主研發(fā),支持 C++、C# 和 Lua 語言。TscanCode 在發(fā)現(xiàn) C++ 空指針、越界、未初始化、C# 空引用、Lua 變量未初始化等方面表現(xiàn)出色,適用于游戲開發(fā)代碼掃描,具有較高的準確率和效率。

TscanCode 主要能發(fā)現(xiàn)以下問題:1. 自動變量檢查:返回自動變量(局部變量)指針;2. 越界檢查:數(shù)組越界返回自動變量(局部變量)指針;3. 類檢查:構造函數(shù)初始化;4. 內存泄漏檢查;5. 空指針檢查;6. 廢棄函數(shù)檢查。

TscanCode 的性能測試可以參考:http://ipnx.cn/link/2ed82a7e645e45584d3aabab834eef35。

騰訊云AI代碼助手
騰訊云AI代碼助手

基于混元代碼大模型的AI輔助編碼工具

騰訊云AI代碼助手98
查看詳情 騰訊云AI代碼助手

TscanCode 的安裝

TscanCode 已在 Github 上開源,代碼倉庫為:GitHub - Tencent/TscanCode: A static code analyzer for C++, C#, Lua。用戶可以自行下載并編譯,也可以使用騰訊預編譯的可執(zhí)行文件(位于代碼倉庫的 release 目錄)。

在 Windows 平臺下,截至目前,Github 的 release 目錄中已不再提供 Windows 的安裝包,但可以通過網(wǎng)絡搜索下載 TscanCodeV2.14.24.windows.exe(評論區(qū)有下載鏈接)。

C++代碼審查工具Cppcheck和TscanCode

在 Linux 平臺下,TscanCode 的安裝方法如下:

第一種:
$ git clone https://github.com/Tencent/TscanCode.git
$ cd TscanCode/release/linux/
$ unzip TscanCodeV2.14.24.linux.zip
$ cd TscanCodeV2.14.24.linux/TscanCodeV2.14.2395.linux
$ chmod a+x tscancode
$ echo "PATH=$PATH:$(pwd)" >> ~/.bashrc
$ source ~/.bashrc
<p>第二種,建議使用:
cd trunk/
make
修改 cfg/cfg.xml  #cfg.xml 配置不當,可能導致檢測結果為空,建議啟用一些 value="0" 的規(guī)則
登錄后復制

TscanCode 的掃描規(guī)則與配置

TscanCode 支持在 Linux、Windows 等多平臺運行。用戶可以通過 cfg/cfg.xml 文件對掃描規(guī)則進行配置,設置 value=0 禁用規(guī)則,value=1 啟用規(guī)則。根據(jù)需求定制掃描規(guī)則,編輯 cfg/cfg.xml 文件,或直接使用默認的掃描規(guī)則。

將源代碼放置在指定路徑 ${SRC_CODE}(路徑中不能包含 root 文件夾,TscanCode 的特殊要求)。如,export SRC_CODE=~/myprj/mysource/

執(zhí)行代碼掃描:

./tscancode --xml --enable=all -q ${SRC_CODE} >scan_result.xml 2>&1
登錄后復制

TscanCode 會將結果按照固定的 XML 格式寫入文件中。用戶可以使用 Excel 工具打開 XML 報告,在左側插入一列處理情況。開發(fā)人員根據(jù)報告對代碼上下文進行分析,判斷是否為工具誤報。對于確認為問題的代碼,由開發(fā)人員處理后重新進行代碼安全靜態(tài)掃描,直到問題關閉。

其他工具介紹

Valgrind 是一款開源(GPL V2)的仿真調試工具集合,支持 Linux 操作系統(tǒng),功能強大,包括:

  1. Memcheck:重量級的內存檢查器,能夠發(fā)現(xiàn)開發(fā)中絕大多數(shù)內存錯誤使用情況,如使用未初始化的內存、使用已釋放的內存、內存訪問越界等;
  2. Callgrind:檢查程序中函數(shù)調用過程中出現(xiàn)的問題,也可用于性能調優(yōu);
  3. Cachegrind:檢查程序中緩存使用出現(xiàn)的問題;
  4. Helgrind:檢查多線程程序中出現(xiàn)的競爭問題;
  5. Massif:檢查程序中堆棧使用中出現(xiàn)的問題;
  6. Extension:編寫特定的內存調試工具。

推薦幾個常用的在線 C++ 代碼測試網(wǎng)站:

C++代碼審查工具Cppcheck和TscanCode

C++代碼審查工具Cppcheck和TscanCode

  • Online PHP/Java/C++... editor and compiler | paiza.IO

C++代碼審查工具Cppcheck和TscanCode

參考文獻:

  • 靜態(tài)代碼掃描工具匯總_while_false_的博客-CSDN博客_靜態(tài)代碼掃描工具
  • TscanCode C/C++靜態(tài)分析開源分析工具安裝與使用_lwblovezj的博客-CSDN博客_tscancode
  • SPrinter:一個基于Clang-Tidy的C++程序智能指針錯誤檢查工具_ithiker的博客-CSDN博客
  • C++代碼自動檢測工具clang-format和clang-tidy_長星照耀十三州府_的博客-CSDN博客
  • TscanCode代碼掃描工具_code_peak的博客-CSDN博客_tscancode
  • 代碼掃描工具TScanCode - yusq77 - 博客園
  • C/C++代碼靜態(tài)分析工具調研
  • 研發(fā)工具,你用對了嗎?
  • Windows下 Cppcheck 的使用教程_hellokandy的博客-CSDN博客_cppcheck
  • C/C++代碼靜態(tài)分析工具調研 - 簡書
  • C++代碼質量掃描主流工具深度比較 - 51Testing軟件測試網(wǎng)-中國軟件測試人的精神家園
  • C++代碼靜態(tài)檢測 - 威海云博客 - 博客園

以上就是C++代碼審查工具Cppcheck和TscanCode的詳細內容,更多請關注php中文網(wǎng)其它相關文章!

最佳 Windows 性能的頂級免費優(yōu)化軟件
最佳 Windows 性能的頂級免費優(yōu)化軟件

每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。

下載
來源:php中文網(wǎng)
本文內容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號