日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享一款不錯的嵌入式靜態(tài)代碼掃描工具

strongerHuang ? 來源:嵌入式大雜燴 ? 2023-10-16 15:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

轉(zhuǎn)自| 嵌入式大雜燴

之前給大家分享過嵌入式開發(fā)常用的代碼靜態(tài)分析工具,比如:PC-lint、LDRA、VectorCAST等。

今天再給大家分享一款不錯的嵌入式靜態(tài)代碼掃描工具。

靜態(tài)代碼掃描?

靜態(tài)代碼掃描是指無需運行被測代碼,通過詞法分析、語法分析、控制流、數(shù)據(jù)流分析等技術(shù)對程序代碼進行掃描,找出代碼隱藏的錯誤和缺陷,如參數(shù)不匹配,有歧義的嵌套語句,錯誤的遞歸,非法計算,可能出現(xiàn)的空指針引用等等。

同樣的,也有運行時診斷的工具,如Valgrind等。

往期博文:Valgrind仿真調(diào)試工具的使用

靜態(tài)代碼掃描工具有很多,主流如:

cppcheck。免費,開源,更新較慢,可自己拓展開發(fā)。

clang。免費,開源,更新較慢,可自己拓展開發(fā)。

TscanCode 。免費,有專人維護,定期根據(jù)用戶需求擴展規(guī)則或新增功能特性。

pclint。付費,商業(yè)軟件,難以進行功能擴展。

coverity。付費,商業(yè)軟件,難以進行功能擴展。

關(guān)于這幾個工具各個指標的詳細對比可參考文章:

本篇博文我們來介紹TscanCode。

TscanCode

TscanCode是騰訊研發(fā)的靜態(tài)代碼掃描工具,最早的版本是基于 cppcheck 二次開發(fā)。之后又重新自研,不僅支持 C/C++,還支持 C#,Lua 語言,在發(fā)掘 C/C++ 空指針、越界、未初始化、C#空引用、Lua變量未初始化等比較有效。

TscanCode 的 Github鏈接:

https://github.com/Tencent/TscanCode

b6d91d4a-6742-11ee-939d-92fbcf53809c.png

TscanCode 可編譯、運行于多個平臺:Windows/Linux/Mac。

TscanCode 主要能夠發(fā)現(xiàn)的問題如下:

自動變量檢查:返回自動變量(局部變量)指針;

越界檢查:數(shù)組越界返回自動變量(局部變量)指針;

類檢查:構(gòu)造函數(shù)初始化;

內(nèi)存泄露檢查;

空指針檢查;

廢棄函數(shù)檢查;

下載得到:

b6e290f0-6742-11ee-939d-92fbcf53809c.png

各文件夾的內(nèi)容:

release文件夾:存放編譯后的二進制文件,包含有Linux、Mac、Windows平臺。

samples文件夾:存放一些代碼示例,分別有C++、C#、Lua語言。

trunk文件夾:存放TscanCode源代碼。

1、Linux下使用TscanCode

對應(yīng)的Linux二進制文件存放在如下路徑:

TscanCode-master/release/linux/TscanCodeV2.14.2395.linux

b6ec4c30-6742-11ee-939d-92fbcf53809c.png

使用前需要加上執(zhí)行權(quán)限:

chmod +x tscancode

例子:使用tscancode檢測samples文件夾下關(guān)于cpp的一些例子。

b6fd0566-6742-11ee-939d-92fbcf53809c.png

在TscanCode-master/release/linux/TscanCodeV2.14.2395.linux路徑下執(zhí)行命令:

./tscancode --xml --enable=all -q ../../../samples/cpp/ >scan_result.xml 2>&1

得到掃描結(jié)果文件:scan_result.xml。該文件復(fù)制到Windows下使用表格工具打開可比較清晰地看到掃描結(jié)果:

b707e36e-6742-11ee-939d-92fbcf53809c.pngb716f782-6742-11ee-939d-92fbcf53809c.png

例子:使用tscancode檢測C語言例子。

在TscanCode-master/release/linux/TscanCodeV2.14.2395.linux路徑下新建一個文件:

test.c:

#include

voidtest(void)
{
charbuf[5]={0};

for(size_ti=0;i

掃描:

./tscancode --xml --enable=all -q ./test.c >scan_result.xml 2>&1

結(jié)果:

b71ae7e8-6742-11ee-939d-92fbcf53809c.png

2、Windows下使用TscanCode

最新版本的release下已經(jīng)去掉windows下的可執(zhí)行文件??墒褂肰2.14.24版本的TscanCodeV2.14.24.windows.exe。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5210

    文章

    20680

    瀏覽量

    337361
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    4368

    瀏覽量

    46464
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2131

    瀏覽量

    77417
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4977

    瀏覽量

    74417

原文標題:一款不錯嵌入式靜態(tài)代碼掃描工具

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    一款適合嵌入式工程師使用的在線工具

    一款適合嵌入式工程師使用的在線工具,工具有如下功能,如下圖所示: 1. 報文校驗功能,如下圖所示 2. UDP服務(wù)端測試工具:該UD
    發(fā)表于 04-09 22:20

    如何從零開始開發(fā)一款嵌入式產(chǎn)品(20年的嵌入式經(jīng)驗)

    本帖最后由 浪子zigbee 于 2014-2-27 15:50 編輯 如題,如何從零開始開發(fā)一款嵌入式產(chǎn)品
    發(fā)表于 02-27 15:37

    一款基于Murphypinyin的嵌入式鍵盤設(shè)計

    本文根據(jù)手持終端的特點,設(shè)計出一款矩陣鍵盤,并在Linux平臺下開發(fā)出鍵盤的驅(qū)動程序。采用Qt/Embedded構(gòu)建圖形界面,通過對Qt/Embedded自帶輸入法的分析,結(jié)合Murphpinyin中文輸入法軟件包,構(gòu)建了一款可輸入數(shù)字、中/英文的
    發(fā)表于 04-28 06:50

    怎么設(shè)計一款ARM嵌入式汽車節(jié)能控制系統(tǒng)?

    ARM嵌入式汽車節(jié)能控制系統(tǒng)的工作原理是什么?怎么設(shè)計一款ARM嵌入式汽車節(jié)能控制系統(tǒng)?
    發(fā)表于 05-17 06:40

    分享一款不錯的基于nRF24E1的嵌入式2.4GHz無線接入系統(tǒng)

    分享一款不錯的基于nRF24E1的嵌入式2.4GHz無線接入系統(tǒng)
    發(fā)表于 05-27 06:06

    分享一款不錯的基于嵌入式Web Server的無線數(shù)據(jù)采集系統(tǒng)

    分享一款不錯的基于嵌入式Web Server的無線數(shù)據(jù)采集系統(tǒng)
    發(fā)表于 05-28 06:58

    如何從零開始開發(fā)一款嵌入式產(chǎn)品

    源:如何從零開始開發(fā)一款嵌入式產(chǎn)品原文地址:【轉(zhuǎn)】如何從零開始開發(fā)一款嵌入式產(chǎn)品作者:rainpad(20年的嵌入式經(jīng)驗分享學(xué)習(xí),來自STM
    發(fā)表于 08-09 08:09

    介紹一下一款簡單易用的嵌入式AI方案

    公司玩了大半年的嵌入式AI平臺,現(xiàn)在產(chǎn)品進入量產(chǎn)模式,也接觸了很多嵌入式方案,有了些心得體會,本人不才,在這里介紹一下一款簡單易用的嵌入式
    發(fā)表于 10-27 06:02

    怎樣挑選一款MCU平臺進行嵌入式系統(tǒng)開發(fā)

    如今,嵌入式系統(tǒng)開發(fā)往往基于平臺模式。MCU平臺包括MCU及其相關(guān)器件(外延器件、配套器件等),集成開發(fā)環(huán)境(開發(fā)板、開發(fā)工具、中間件等),以及操作系統(tǒng)等。半導(dǎo)體廠商在推出一款MCU新產(chǎn)品時,
    發(fā)表于 11-03 08:42

    推薦一款比較好的嵌入式開發(fā)板

    學(xué)習(xí)嵌入式,必不可少的工具就是塊開發(fā)板。對新手而言,學(xué)嵌入式用哪個開發(fā)板好,下面為大家推薦一款比較好的
    發(fā)表于 11-08 06:38

    如何快速上手一款新的嵌入式CPU芯片

    如何快速上手一款新的嵌入式CPU芯片(記錄CC2540開發(fā)經(jīng)歷)最新要開發(fā)個藍牙的氛圍燈,網(wǎng)上找了好久,都沒找到合適的芯片。要么是TI或者nordic的純BLE,不帶播放音樂。要么是帶音頻又帶數(shù)據(jù)
    發(fā)表于 12-23 07:45

    怎樣去設(shè)計一款RK3399Pro嵌入式主機呢

    怎樣去設(shè)計一款RK3399Pro嵌入式主機呢?RK3399Pro嵌入式主機有哪些性能呢?
    發(fā)表于 02-10 07:00

    嵌入式系統(tǒng)開發(fā)中的靜態(tài)分析

      由于嵌入式系統(tǒng)行業(yè)的快速增長,嵌入式設(shè)備的代碼質(zhì)量成為主要關(guān)注點之??紤]到嵌入式系統(tǒng)開發(fā)的特殊性(調(diào)試難度大、出錯成本高等),開發(fā)人員
    的頭像 發(fā)表于 11-21 14:51 ?2437次閱讀

    一款專業(yè)且全面的嵌入式開發(fā)調(diào)試工具

    不知道大家平時做嵌入式開發(fā)時用調(diào)試工具進行調(diào)試,今天給大家分享一款專業(yè)且全面的嵌入式調(diào)試工具集:Micro-Lab。
    的頭像 發(fā)表于 04-15 14:10 ?2786次閱讀

    推薦一款專業(yè)且全面的嵌入式開發(fā)調(diào)試工具

    今天給大家分享一款專業(yè)且全面的嵌入式調(diào)試工具集:Micro-Lab在工作中,以什么樣的方式向領(lǐng)導(dǎo)匯報工作最直接高效呢?當(dāng)然是圖形界面!圖形界面更好表達個程序設(shè)計的邏輯思維,
    的頭像 發(fā)表于 04-20 10:00 ?1927次閱讀
    推薦<b class='flag-5'>一款</b>專業(yè)且全面的<b class='flag-5'>嵌入式</b>開發(fā)調(diào)試<b class='flag-5'>工具</b>
    许昌市| 隆化县| 巨野县| 峨山| 云南省| 余姚市| 固始县| 江城| 万安县| 磐石市| 阿鲁科尔沁旗| 曲松县| 江口县| 安图县| 屏边| 永定县| 离岛区| 平江县| 巴林右旗| 来安县| 周口市| 游戏| 茶陵县| 泌阳县| 安塞县| 兰溪市| 谢通门县| 临洮县| 尉氏县| 麻城市| 乌兰察布市| 盐津县| 同江市| 寿宁县| 聂荣县| 深州市| 广德县| 田林县| 仙游县| 清河县| 青州市|