色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

在RT-Thread的scons上使用clang-tidy做靜態分析

RTThread物聯網操作系統 ? 來源:RTThread物聯網操作系統 ? 2023-04-27 14:09 ? 次閱讀

測試代碼

先寫個簡單的代碼

main.c

 1#include
 2#include
 3#include
 4intmain(intargc,char*argv[])
 5{
 6char*tmp=(char*)malloc(argc);
 7if(tmp)
 8{
 9strncpy(tmp,argv[0],argc);
10printf("%s",tmp);
11if(argc>2)
12{
13free(tmp);
14}
15}
16printf("helloworld!
");
17return0;
18}

使用clang-tidy分析一下

 1#aptinstall-yclang-tidy
 2#clang-tidymain.c
 3Errorwhiletryingtoloadacompilationdatabase:
 4Couldnotauto-detectcompilationdatabaseforfile"main.c"
 5Nocompilationdatabasefoundin/work/analyzeroranyparentdirectory
 6fixed-compilation-database:Errorwhileopeningfixeddatabase:Nosuchfileordirectory
 7json-compilation-database:ErrorwhileopeningJSONdatabase:Nosuchfileordirectory
 8Runningwithoutflags.
 92warningsgenerated.
10/work/analyzer/main.c:12:3:warning:Calltofunction'strncpy'isinsecureasitdoesnotprovidesecuritychecksintroducedintheC11standard.Replacewithanalogousfunctionsthatsupportlengthargumentsorprovidesboundarycheckssuchas'strncpy_s'incaseofC11[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
11strncpy(tmp,argv[0],argc);
12^~~~~~~
13/work/analyzer/main.c:12:3:note:Calltofunction'strncpy'isinsecureasitdoesnotprovidesecuritychecksintroducedintheC11standard.Replacewithanalogousfunctionsthatsupportlengthargumentsorprovidesboundarycheckssuchas'strncpy_s'incaseofC11
14strncpy(tmp,argv[0],argc);
15^~~~~~~
16/work/analyzer/main.c:21:2:warning:Potentialleakofmemorypointedtoby'tmp'[clang-analyzer-unix.Malloc]
17printf("helloworld!
");
18^
19/work/analyzer/main.c:8:22:note:Memoryisallocated
20char*tmp=(char*)malloc(argc);
21^~~~~~~~~~~~
22/work/analyzer/main.c:10:5:note:Assuming'tmp'isnon-null
23if(tmp)
24^~~
25/work/analyzer/main.c2:note:Takingtruebranch
26if(tmp)
27^
28/work/analyzer/main.c6:note:Assuming'argc'is<=?2
29????????????????if(argc?>2)
30^~~~~~~~
31/work/analyzer/main.c:15:3:note:Takingfalsebranch
32if(argc>2)
33^
34/work/analyzer/main.c2:note:Potentialleakofmemorypointedtoby'tmp'
35printf("helloworld!
");
36^

compile_commands.json

還是有點用的,但我們RT-Thread項目中代碼那么多,一個一個輸入太麻煩了。

而且我們代碼多是arm和gcc的,而開發機多是x86,clang默認參數也分析不了。

剛才分析結果第1行就有提示,沒有找到compilation database,其實scons就可以生成

需要比較新的版本

1python3-mpipinstallscons
2python3-mSCons-v
3SConsbyStevenKnightetal.:
4SCons:v4.0.1.c289977f8b34786ab6c334311e232886da7e8df1,2020-07-1701:50:03,bybdbaddogonProDog2020
5SConspath:['/usr/lib/python3/dist-packages/SCons']
6Copyright(c)2001-2020TheSConsFoundation

然后更新下Scons腳本,讓生成compile_commands.json

1#gitdiffSConstruct
2+env.Tool('compilation_db')
3+env.CompilationDatabase()
4#makeabuilding
5DoBuilding(TARGET,objs)

run-clang-tidy

然后使用 run-clang-tidy 就可以自動分析所有的源代碼了。

輸出html

生成的結果是文本,查看起來還是比較費力的,目前有個簡單的轉換為html格式,

雖然也比較簡陋,但比文本還是方便多了。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9164

    瀏覽量

    368663
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40318
  • gcc編譯器
    +關注

    關注

    0

    文章

    78

    瀏覽量

    3414

原文標題:在RT-Thread的scons基礎上,使用clang-tidy做靜態分析

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread學習筆記】使用scons命令生成靜態

    RT-Thread學習筆記】如何使用scons 命令中buildlib的生成靜態庫?
    的頭像 發表于 07-27 09:13 ?6149次閱讀
    【<b class='flag-5'>RT-Thread</b>學習筆記】使用<b class='flag-5'>scons</b>命令生成<b class='flag-5'>靜態</b>庫

    基于RT-Thread的RoboMaster電控框架設計

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包……很難不選擇 RT-Thread 進行項目開發。
    發表于 09-06 15:21 ?739次閱讀

    RT-Thread系統中的Scons構建工具資料推薦

    RT-ThreadSCons標準接口的基礎,提供了一組用于組織源碼工程的擴展接口。開發者使用時,可以借助
    發表于 05-07 15:35

    RT-Thread SCons編譯不穩定問題debug總結

    摘要在使用RT-Thread的過程中,發現RT-Thread SCons存在編譯不穩定的問題。源文件相同的情況下連續編譯,相鄰兩次生成的map文件和bin文件差異巨大、運行效果不同,
    發表于 09-19 16:44

    RT-Thread怎樣去使用clang-tidy靜態分析

    );}}printf("hello world!\\n");return 0;}使用clang-tidy分析一下
    發表于 09-20 15:33

    RT-Thread Smart已正式上線

    rt-smart內核即可包含基本功能,同時也可定制裁剪。rt-smart用戶態應用環境采用musl libc提供POSIX接口調用及C運行環境,延續 RT-Thread 原有的生態,使用sco
    的頭像 發表于 11-29 10:31 ?2842次閱讀

    RT-Thread 4.1.0的CMake構建教程

    CMake 支持 RT-Thread 4.1.0 正式發布版中,添加了對 CMake 的支持。開發者可以使用 SCons 工具來生成 CMakeLists.txt 文件。 為何要支持 CMake
    的頭像 發表于 05-25 11:06 ?3428次閱讀

    RT-Thread全球技術大會:KconfigRT-Thread中的工作機制

    RT-Thread全球技術大會:KconfigRT-Thread中的工作機制 ? ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 14:49 ?1575次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:Kconfig<b class='flag-5'>在</b><b class='flag-5'>RT-Thread</b>中的工作機制

    RT-Thread全球技術大會:關于SCons構建引擎的主要部分介紹

    RT-Thread全球技術大會:關于SCons構建引擎的主要部分介紹 ? ? ? ? 審核編輯:彭靜 ?
    的頭像 發表于 05-27 14:55 ?1036次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:關于<b class='flag-5'>SCons</b>構建引擎的主要部分介紹

    RT-Thread全球技術大會:RT-Thread編寫測試用例

    RT-Thread全球技術大會:RT-Thread編寫測試用例 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 16:28 ?1508次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術大會:<b class='flag-5'>在</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>上</b>編寫測試用例

    RT-Thread文檔_RT-Thread 簡介

    RT-Thread文檔_RT-Thread 簡介
    發表于 02-22 18:22 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 簡介

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    RT-Threadscons基礎使用clang-tidy靜態分析

    剛才分析結果第1行就有提示,沒有找到compilation database,其實scons就可以生成
    發表于 07-22 14:18 ?703次閱讀

    基于 RT-Thread 的 RoboMaster 電控框架(一)

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包……很難不選擇 RT-Thread 進行項目開發
    的頭像 發表于 09-19 19:55 ?806次閱讀

    基于RT-Thread的RoboMaster電控框架(二)

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包
    的頭像 發表于 09-20 15:16 ?792次閱讀
    主站蜘蛛池模板: 妖精视频免费看 | 毛片在线不卡 | 青草精品国产福利在线视频 | 丰满的女朋友韩国版在线观看 | 中文字幕按摩 | 99国产精品成人免费视频 | 亚洲精品在线影院 | 国产互换后人妻的疯狂VIDEO | 日韩亚洲欧美中文在线 | 麻豆第一区MV免费观看网站 | 中文字幕 日韩 无码 在线 | 美女脱得只剩皮肤 | 亚洲免费一区二区 | 入禽太深免费视频10 | 蝴蝶中文综合娱乐网2 | 日本一二三区在线视频 | 国产精品免费一区二区区 | 学生无码AV一区二区三区 | 日韩一级精品久久久久 | 亚洲欧美一区二区成人片 | 中文字幕1 | 久久久久久久久a免费 | 母乳女神春日もな | 亚洲一区国产 | 伊人影院综合在线 | 性西欧俄罗斯极品 | 日本aa大片 | 国产午夜精品久久理论片小说 | 精品日韩视频 | 久久婷婷五月免费综合色啪 | 久久成人a毛片免费观看网站 | 德国美女密密麻麻浓毛 | 在线精品视频免费观看 | 动漫美女人物被黄漫在线看 | 亚州AV中文无码乱人伦在线 | 成人a视频片在线观看免费 成人a毛片久久免费播放 | 亚洲一区日韩一区欧美一区a | 男女后进式猛烈xx00动态图片 | 高H黄暴NP辣H一女多男 | 真实国产乱子伦精品一区二区三区 | 久久777国产线看观看精品卜 |