色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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

    文章

    9107

    瀏覽量

    367987
  • RT-Thread
    +關注

    關注

    31

    文章

    1294

    瀏覽量

    40231
  • gcc編譯器
    +關注

    關注

    0

    文章

    78

    瀏覽量

    3400

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

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

收藏 人收藏

    評論

    相關推薦

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

    RT-Thread學習筆記】如何使用scons 命令中buildlib的生成靜態庫?
    的頭像 發表于 07-27 09:13 ?6075次閱讀
    【<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 ?717次閱讀

    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 ?2818次閱讀

    RT-Thread 4.1.0的CMake構建教程

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

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

    RT-Thread全球技術大會:KconfigRT-Thread中的工作機制 ? ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發表于 05-27 14:49 ?1554次閱讀
    <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 ?1015次閱讀
    <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 ?1493次閱讀
    <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 ?677次閱讀

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

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

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

    由于 RT-Thread 穩定高效的內核,豐富的文檔教程,積極活躍的社區氛圍,以及設備驅動框架、Kconfig、Scons、日志系統、海量的軟件包
    的頭像 發表于 09-20 15:16 ?771次閱讀
    主站蜘蛛池模板: 99er久久国产精品在线| 国产永久免费高清在线观看| 久久精品天天爽夜夜爽| 在线观看国产亚洲| 最近免费中文字幕MV在线视频3| 久久久久久免费观看| 2021扫黑风暴在线观看免费完整版| 男女边吃奶边做边爱视频| 纯肉巨黄H爆粗口男男分卷阅读| 亚洲 欧美 国产在线视频| 就去色一色| 国产成人免费网站在线观看| 伊人草久久| 色戒未删减版在线观看完整| 吉吉影音先锋av资源| sm主人调教揉花蒂H| 亚洲乱码中文字幕久久孕妇黑人 | 亚洲三级视频| 美女爽到嗷嗷嗷叫| 国产精品人妻无码77777| 最近中文字幕mv手机免费高清| 色婷婷激婷婷深爱五月小蛇| 久久国产精品麻豆AV影视| 东京热 百度影音| 亚洲野狼综合网站| 国内免费视频成人精品| 91热久久免费频精品99欧美| 午夜伦理:伦理片| 免费国产久久啪久久爱| 国产精人妻无码一区麻豆| 99久久精品全部| 亚洲欧美色综合影院| 色橹橹欧美在线观看视频高清| 久久亚洲电影www电影网| 国产精品免费一区二区三区视频 | 精品一区二区三区在线成人 | 小s现场抛胸挤奶| 国内精品视频在线播放一区| xxxx88| 在线观看免费小视频| 午夜理伦片免费|