/中文/
/中文/
/英文/
/簡體中文/
/簡體中文/
/簡體中文/
/簡體中文/
/簡體中文/
/簡體中文/
/簡體中文/
Cppcheck是一種C/C++代碼缺陷靜態(tài)檢查工具。不同于C/C++編譯器及其它分析工具,Cppcheck只檢查編譯器檢查不出來的bug,不檢查語法錯誤。我們的目標(biāo)是(具有零誤報即),以檢測只實(shí)際中的錯誤代碼。
Cppcheck是一個靜態(tài)分析工具對C/ C ++代碼。
C/ C ++編譯器和很多其他分析工具,它不檢測代碼中的語法錯誤。
Cppcheck主要檢測的漏洞,該編譯器通常不檢測的類型。
我們的目標(biāo)是(具有零誤報即),以檢測只實(shí)際中的錯誤代碼。
檢測各種錯誤在你的代碼。
- 出界檢查
- 內(nèi)存泄漏檢測
- 檢測可能的空指針廢除
- 檢查未初始化變量
- 檢查STL的無效使用
- 檢查異常安全
- 如果過時或不安全的功能是用來警告
- 警告沒有使用的或多余的代碼
- 檢測各種可疑的指示代碼中的bug
測試
- 選擇一個項(xiàng)目并測試它的源與最新版本。寫門票TRAC你從Cppcheck發(fā)現(xiàn)的問題。
發(fā)展
- 選擇從Trac的車票,編寫測試用例為它(和寫評論測試用例已創(chuàng)建的車票)。
或者選擇一個測試用例失敗,并試圖修復(fù)它。
打個補(bǔ)丁,并提交給Trac的內(nèi)聯(lián)如果是小,或者將其固定為一個文件。
市場營銷
- 寫文章,評論或告訴你的朋友們。
用戶越多,我們有,更多的人,我們有測試和更好的,我們能成。
設(shè)計
- 創(chuàng)造新的良好的檢查和創(chuàng)建門票TRAC他們。
積分
- 編寫一個插件,你最喜歡的IDE或您的發(fā)行或操作系統(tǒng)創(chuàng)建一個包。
技術(shù)撰稿人
- 寫出我們發(fā)現(xiàn)錯誤更好的文檔。目前,只有少數(shù)的錯誤有任何文件都沒有。
1. 自動變量
指針變量是唯一有效的,只要該變量是在范圍內(nèi)。
2. 檢查:
- 返回指針自動或臨時變量
- 分配一個變量的地址給一個函數(shù)的一個有效的參數(shù)
- 返回引用本地/臨時變量
- 返回函數(shù)參數(shù)的地址
- 指針參數(shù)可疑分配
- 功能參數(shù)無用分配
3. 布爾
布爾類型檢查
- 使用增量布爾
- 一個布爾值與非零整數(shù)比較
- 布爾表達(dá)式的一個整數(shù)比0或1的比較
- 一個功能比較使用關(guān)系運(yùn)算符返回布爾值
- 與布爾值使用關(guān)系運(yùn)算符的布爾值比較
- 使用布爾按位中表達(dá)
- 指針加法的條件(無論是間接引用被忘記或指針溢出才能使病情假)
- 分配布爾值指針或浮動
4. 升壓用法
檢查升壓無效用法:
- BOOST_FOREACH在集裝箱改裝
5. 邊界檢查
出界檢查:
- 數(shù)組索引出界檢測通過價值流分析
- 危險strncat函數(shù)的使用()
- 通過為尺寸字符常量的功能就像memset的()
- 的strncpy()離開字符串未終止
- 訪問數(shù)組負(fù)折射率
- 主(的argv,argc個)參數(shù)不安全使用
- 訪問數(shù)組索引變量檢查其值之前
- 檢查足夠大的數(shù)組被傳遞給函數(shù)
- 分配內(nèi)存以負(fù)尺寸
6. 類
檢查每個類的代碼。
- 缺少構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)
- 構(gòu)造函數(shù)應(yīng)該是明確的
- 通過構(gòu)造函數(shù)初始化所有的變量?
- 是否分配的所有變量通過運(yùn)算符='?
- 時發(fā)出警告memset的,的memcpy等都是在一個類中使用
- 如果內(nèi)存類的分配使用malloc警告()
- 如果它是一個基類,檢查的析構(gòu)函數(shù)是虛擬的
- 是否有未使用的私有函數(shù)?
- “運(yùn)算符='應(yīng)該返回引用自
- “運(yùn)算符='應(yīng)檢查分配給自
- 常量性的成員函數(shù)
- 順序初始化的
- 推薦的初始化列表的使用
- 一個構(gòu)件的與自身初始化
- 從“這個”可疑的減法
- 在構(gòu)造函數(shù)調(diào)用純虛函數(shù)/析構(gòu)函數(shù)
- 重復(fù)的繼承的數(shù)據(jù)成員
7. 條件
配合分配和其他條件的條件:
- 不匹配的分配和比較=>比較總是真/假
- 不匹配的LHS和RHS比較=>比較總是真/假
- 檢測的使用|其中&應(yīng)該使用
- 檢測“如果”匹配與“否則,如果”條件
- 失配BITAND(一個&= 0XF0;一個與= 1; =>α= 0)
- 發(fā)現(xiàn)死代碼是不可訪問,由于反條件檢查嵌套if語句
- 條件,始終是真/假
- 互斥超過||總為真
- 模結(jié)果總是為真/假的比較。
- 已知的變量值=>條件始終為真/假
8. 異常安全
檢查異常安全
- 在析構(gòu)函數(shù)拋出異常
- 在無效狀態(tài)引發(fā)異常
- 投擲捕獲異常的副本,而不是重新拋出原始異常
- 捕獲到異常按值而不是按引用
- 在noexcept拋出異常,不拋出異常(),屬性((拋出異常))或__declspec(不拋出)函數(shù)
- 未處理的異常規(guī)范時,調(diào)用函數(shù)foo()
9. IO使用格式字符串
檢查格式字符串輸入/輸出操作。
- 功能“的sprintf”的不良的使用(重疊的數(shù)據(jù))
- 在“scanf的”格式字符串缺失或錯誤寬度說明
- 使用已關(guān)閉的文件
- 文件輸入/輸出,無需定位結(jié)果未定義的行為
- 閱讀到只被打開寫文件(反之亦然)
- 對文件操作重新定位以追加模式打開
- 對輸入流使用fflush()
- 輸出流的無效使用。例如:“性病::法院<<性病::法院;”
- 錯誤一些給'printf的“或參數(shù)”scanf函數(shù);“
關(guān)于騰牛 | 聯(lián)系方式 | 發(fā)展歷程 | 版權(quán)聲明 | 下載幫助(?) | 廣告聯(lián)系 | 網(wǎng)站地圖 | 友情鏈接
Copyright 2005-2022 QQTN.com 【騰牛網(wǎng)】 版權(quán)所有 鄂ICP備2022005668號-1 | 鄂公網(wǎng)安備 42011102000260號
聲明:本站非騰訊QQ官方網(wǎng)站 所有軟件和文章來自互聯(lián)網(wǎng) 如有異議 請與本站聯(lián)系 本站為非贏利性網(wǎng)站 不接受任何贊助和廣告