国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

靜態(tài)分析器 Clang Static Analyzer (2) CodeChecker

系統(tǒng) OpenHarmony
Clang 靜態(tài)分析器CSA是一個(gè)源代碼分析工具,可查找 C、C++ 和 Objective-C 程序的bugs。

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??

1、Clang Static Analyzer介紹

Clang 靜態(tài)分析器CSA是一個(gè)源代碼分析工具,可查找 C、C++ 和 Objective-C 程序的bugs。
目前可以從命令行中運(yùn)行,或者如果您使用 macOS,則可以在 Xcode 中使用。當(dāng)從命令行中運(yùn)行時(shí),該工具和代碼構(gòu)建串聯(lián)運(yùn)行。
該分析器是100%開(kāi)源的,是Clang項(xiàng)目的一部分。類似Clang的其他工具,它實(shí)現(xiàn)為C++庫(kù),可以被其他工具和應(yīng)用調(diào)用。

2、Clang Static Analyzer命令行工具

靜態(tài)分析器在設(shè)計(jì)上是一個(gè) GUI 工具。其目的是找到程序中的錯(cuò)誤執(zhí)行路徑,這些路徑很難通過(guò)查看非交互式標(biāo)準(zhǔn)輸出進(jìn)行獲取。但是,可以從命令行調(diào)用靜態(tài)分析器來(lái)獲取分析結(jié)果,稍后在圖形界面中以交互方式查看分析結(jié)果。以下兩個(gè)工具通常用于從命令行運(yùn)行分析器,這兩種工具都是封裝的腳本,用于分析結(jié)果、調(diào)用底層的Clang編譯器:

  • Scan-Build是一個(gè)古老而簡(jiǎn)單的命令行工具,可在編譯項(xiàng)目時(shí)輸出HTML文件。用于查看靜態(tài)分析器警告。您可以在 Web 瀏覽器中查看分析結(jié)果。
  • 對(duì)于只想在辦公桌上或在非常簡(jiǎn)單的協(xié)作環(huán)境中查看靜態(tài)分析結(jié)果的個(gè)人開(kāi)發(fā)人員非常有用。
  • 適用于所有主要平臺(tái)(Windows,Linux,macOS),并且在許多Linux發(fā)行版中作為軟件包提供。
  • 不包括對(duì)交叉翻譯單元分析的支持cross-translation-unit analysis。
  • CodeChecker是一個(gè) Web 服務(wù)器,它按需在項(xiàng)目上運(yùn)行靜態(tài)分析器,并維護(hù)問(wèn)題數(shù)據(jù)庫(kù)。
  • 非常適合在協(xié)作環(huán)境中管理大量靜態(tài)分析器警告。
  • 通常比scan-build功能更豐富。
  • 支持增量分析:結(jié)果可以存儲(chǔ)在數(shù)據(jù)庫(kù)中,后續(xù)分析運(yùn)行可以對(duì)比,列出新添加的缺陷。
  • 通過(guò) CodeChecker 在 Linux 上完全支持交叉翻譯單元 (Cross Translation Unit ,CTU) 分析。
  • 也可以運(yùn)行clang-tidy checker檢查器。
  • 開(kāi)源,但是開(kāi)源項(xiàng)目之外,即不是LLVM項(xiàng)目的一部分。

3、CodeChecker工具

CodeChecker 是一個(gè)靜態(tài)分析工具,基于LLVM/Clang Static Analyzer工具鏈進(jìn)行構(gòu)建的,用來(lái)替代scan-build工具,可以用于Linux或macOS開(kāi)發(fā)環(huán)境上。
CodeChecker工具屬于python的庫(kù)文件,維護(hù)在pypi上。安裝該工具,使用命令如下:

pip3 install codechecker

還需要安裝下cppcheck等,命令如下:

sudo apt-get install cppcheck

另外,需要使用下述環(huán)境變量,在~/openharmony/prebuilts/clang/ohos/linux-x86_64/llvm/bin目錄下有clang-tidy等命令行工具會(huì)使用到。

export PATH=~/openharmony/prebuilts/clang/ohos/linux-x86_64/llvm/bin:$PATH
export CC_LOGGER_GCC_LIKE="gcc:g++:clang:clang++:cc:c++"

4、CodeChecker基本用法

繼續(xù)使用之前提供一個(gè)簡(jiǎn)單的示例文件simple.c,里面包含明顯的錯(cuò)誤。

#include <stdio.h>

struct S {
int x;
};
void f(struct S s){
}
void test() {
struct S s;
f(s); // warn
}
int test2(int x){
return 5/(x-x); // warn
}
int main(){
test();
test2(532);
printf("Hej\r\r");
}

以及使用到的Makefile:

all: simple.c
gcc -o simple_mk simple.c
clean:
rm -f *.o simple_mk

(1)CodeChecker log生成分析日志

執(zhí)行如下命令,在編譯的時(shí)候生成分析日志。

make clean
CodeChecker log -b "make" -o compile_commands.json

執(zhí)行輸出信息如下:

zhushangyuan@DESKTOP-RPE9R4O:~/CSA$ make clean
rm -f *.o simple_mk
zhushangyuan@DESKTOP-RPE9R4O:~/CSA$ CodeChecker log -b "make" -o compile_commands.json
[INFO 2022-12-06 21:11] - Starting build...
[INFO 2022-12-06 21:11] - Using CodeChecker ld-logger.
gcc -o simple_mk simple.c
simple.c: In function ‘test2’:
simple.c:16:11: warning: division by zero [-Wdiv-by-zero]
return 5/(x-x); // warn
~^~~~~~
[INFO 2022-12-06 21:11] - Build finished successfully.

生成的文件內(nèi)容比較簡(jiǎn)單:

[
{
"directory": "/home/zhushangyuan/CSA",
"command": "/usr/bin/gcc -o simple_mk simple.c",
"file": "simple.c"
}
]

(2)CodeChecker analyze分析工程

執(zhí)行如下命令,輸出分析報(bào)告。reports文件夾下主要是些plist文件,屬于xml格式的文件,用于記錄編譯錯(cuò)誤信息。

CodeChecker analyze compile_commands.json -o ./reports

(3)CodeChecker parse查看分析結(jié)果

可以使用如下命令,使用純文本方式展示分析出來(lái)的缺陷以及統(tǒng)計(jì)信息。

CodeChecker parse --print-steps ./reports

上述命令易讀性較差,可以使用下述命令,在瀏覽器里查看。使用瀏覽器Firefox或MS Edge打開(kāi)./reports_html/index.html即可。

CodeChecker parse ./reports -e html -o ./reports_html
firefox | msedge.exe ./reports_html/index.html

缺陷列表示意圖如下:

#盲盒+碼#  Clang Static Analyzer (2) CodeChecker-開(kāi)源基礎(chǔ)軟件社區(qū)

分析結(jié)果統(tǒng)計(jì)信息如下:

#盲盒+碼#  Clang Static Analyzer (2) CodeChecker-開(kāi)源基礎(chǔ)軟件社區(qū)

缺陷展示頁(yè)面如下:

#盲盒+碼#  Clang Static Analyzer (2) CodeChecker-開(kāi)源基礎(chǔ)軟件社區(qū)

(4)CodeChecker store存儲(chǔ)分析結(jié)果

可以使用CodeChecker server命令創(chuàng)建一個(gè)Web站點(diǎn),然后執(zhí)行CodeChecker store命令把分析結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)。然后通過(guò)瀏覽器http://localhost:8555/Default進(jìn)行網(wǎng)頁(yè)訪問(wèn),可以在瀏覽器上對(duì)分析結(jié)果進(jìn)行管理。

mkdir ./ws
CodeChecker server -w ./ws -v 8555 &
CodeChecker store ./reports --name my-project --url http://localhost:8555/Default

#盲盒+碼#  Clang Static Analyzer (2) CodeChecker-開(kāi)源基礎(chǔ)軟件社區(qū)

??想了解更多關(guān)于開(kāi)源的內(nèi)容,請(qǐng)?jiān)L問(wèn):??

??51CTO 開(kāi)源基礎(chǔ)軟件社區(qū)??

??https://ost.51cto.com??。

責(zé)任編輯:jianghua 來(lái)源: 51CTO開(kāi)源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-12-12 16:11:47

Clang-Tidy工具

2022-12-09 15:38:54

Cppcheck靜態(tài)分析工具

2022-12-13 15:42:56

Clang-Tidy靜態(tài)分析工具

2020-02-24 09:25:33

代碼開(kāi)發(fā)工具

2010-11-09 14:06:47

SQL Server查

2010-01-05 16:55:44

JSON 文本

2011-07-26 10:27:07

分析器操作系統(tǒng)服務(wù)器

2017-05-16 13:55:57

2009-05-06 17:31:17

SQL EnlightT-SQL分析器

2017-04-29 10:37:23

2009-03-03 09:56:00

協(xié)議分析器WLAN

2010-09-02 09:15:33

協(xié)議分析器Wi-Fi

2012-05-14 11:52:45

服務(wù)器角色

2010-11-09 11:40:14

SQL Server查

2011-09-13 11:26:09

交換機(jī)端口分析器SPAN交換機(jī)

2010-04-09 18:12:12

Wi-Fi無(wú)線協(xié)議分析

2014-09-18 14:56:34

CentOSSARG

2018-01-30 17:35:39

LinuxPythonNmon分析器

2010-08-20 15:07:22

浮動(dòng)靜態(tài)路由

2022-11-24 13:05:27

ClangiOS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

四虎精品成人免费网站| 正在播放欧美视频| 成人久久久久久久| 国产成人在线视频免费观看| 国产亚洲视频系列| 欧美一区二区美女| 婷婷激情四射五月天| yw.尤物在线精品视频| 亚洲精品网站在线观看| 久久精品国产精品亚洲精品色 | 久久激情视频久久| 一区二区三视频| 羞羞的视频在线看| 亚洲精品网站在线观看| 97超碰在线人人| 国外成人性视频| 九九热精品视频在线播放| 97超碰在线人人| 小嫩嫩12欧美| 一区二区三区日本| 麻豆久久久久久| 成人一级视频| 男操女在线观看| www.在线视频| 精品高清美女精品国产区| 五月天av影院| 另类亚洲自拍| 91成人免费视频| 国产女主播在线直播| 2022国产精品视频| 欧美在线观看视频免费| 91看片一区| 久久久久久影视| 少妇特黄a一区二区三区| 久久亚洲导航| 国产成人av一区二区三区在线| 亚洲老头老太hd| 国产精品宾馆在线精品酒店| 国产精品极品在线观看| 中文国产亚洲喷潮| 国产美女高潮在线观看| 久久久久久夜精品精品免费| 国产精品久久久久久久久电影网| 视频在线观看91| 伊人精品在线观看| 美女91在线看| 国产精品网站一区| 青青草av网站| 欧美激情一区三区| 亚洲free性xxxx护士白浆| 特黄特色欧美大片| 日韩免费观看视频| 超碰在线无需免费| 欧美三区在线视频| 新呦u视频一区二区| 亚洲一区成人| 欧美一区二区三区四区在线观看地址| 国产精品尤物| 亚洲巨乳在线观看| 日韩大尺度在线观看| 久久久这里只有精品视频| 9l视频自拍蝌蚪9l视频成人| 久久男人av资源网站| 精品国产精品| av在线不卡观看| 性欧美videos另类喷潮| 亚洲一区二区在线观| 国产制服丝袜一区| 国内免费久久久久久久久久久| 6080成人| 日韩欧美二区三区| 免费一级特黄录像| 亚洲欧洲另类国产综合| 亚洲一区二区三区免费观看| 加勒比av一区二区| 大肉大捧一进一出好爽视频| ...xxx性欧美| 国产亚洲精品美女久久久m| 六十路在线观看| 伊人久久久久久久久久| 亚洲五月综合| 欧美日韩一二三区| 91精品国产综合久久久久久久 | 免费欧美视频| 欧美狂野另类xxxxoooo| 在线不卡日本v二区707| 亚洲欧美日韩爽爽影院| 草草视频在线一区二区| 在线免费观看黄| 日韩高清av一区二区三区| 免费h片在线观看| 久久国产精品72免费观看| 777精品视频| 色黄网站在线观看| 伊人激情综合网| 国产真实有声精品录音| 日韩视频免费观看| 免费国产自久久久久三四区久久| 国产精品12| 成人激情动漫在线观看| 精品国产乱码久久久久久久软件| 日日夜夜免费精品视频| 欧美激情成人网| 欧美日韩综合在线| 国产午夜久久av| 成人欧美一区二区| 99国产精品国产精品毛片| 亚洲综合第一| 中文字幕日韩av资源站| 92国产在线视频| 欧美乱大交xxxxx| 国产婷婷精品| eeuss在线播放| 亚洲国产精品二十页| 国产中文字幕在线| 久久香蕉国产线看观看av| 日韩在线伦理| 日韩av片永久免费网站| 国产一区二区三区蝌蚪| 精品美女视频在线观看免费软件 | xvideos亚洲| 911精品美国片911久久久| 欧美狂野激情性xxxx在线观| 偷拍一区二区三区| 高清一区二区中文字幕| 麻豆传媒一区二区| 亚洲一区二区三区美女| 最新天堂中文在线| 久久―日本道色综合久久| 欧美三级电影一区二区三区| 欧美亚洲国产日本| 国产精品中文欧美| 日韩av中文| 日韩美女福利视频| 99国产精品久久久久久久久久| 免费a在线看| 国产精品视频区| 亚洲精品一区中文字幕乱码| 精品久久久久久亚洲国产300| 免费免费啪视频在线观看| 亚洲欧美在线免费| 伦xxxx在线| 国产999在线| 国产亚洲精品精华液| 亚洲精品永久免费视频| 91网免费观看| 亚洲成人你懂的| 欧美电影免费网站| 777久久久精品一区二区三区| 日韩亚洲欧美中文三级| 不卡视频观看| 国产成人看片| 欧美日韩亚洲国产一区| 国产欧美高清视频在线| 蜜臀av免费观看| 欧美日本中文字幕| 99国产精品国产精品毛片| 外国电影一区二区| 免费人成自慰网站| 伊人精品在线观看| 国产成人亚洲精品青草天美| 天堂电影一区| 男女h黄动漫啪啪无遮挡软件| 亚洲精品第一国产综合精品| 日韩电影在线一区二区| 黄色免费网站在线观看| 好吊色欧美一区二区三区四区| 欧美婷婷六月丁香综合色| 欧亚av在线| 天天爽天天狠久久久| 欧美一区二区三区四区在线观看 | 国产成人aa精品一区在线播放 | 国产精品99久久久久久久vr| 天堂中文在线播放| 伊人再见免费在线观看高清版 | 理论视频在线| 亚洲欧美中文字幕| 久久综合免费视频影院| 亚洲高清不卡在线观看| 91精品国产综合久久久蜜臀粉嫩| 美女av一区二区| 国产不卡av一区二区| 久久美女精品| 国产人成精品一区二区三| 色琪琪久久se色| 国产a级一级片| 国产一级黄色录像片| 久草在线免费二| 草草视频在线| 欧美视频第一| 欧美另类网站| 好男人www社区| 在线看三级电影| 欧美美女一区| 国产成人免费视频网站高清观看视频 | 欧美偷窥清纯综合图区| 国产精品99久久久久久有的能看| 日韩欧美精品三级| 7777精品伊久久久大香线蕉语言 | 69久久精品|