0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

静态分析中的自动执行是否提供所需

星星科技指导员 来源:嵌入式计算设计 作者:Fulvio Baccaglini 2022-09-10 15:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

软件开发活动应包括源代码审查,以提高软件质量并防止或消除软件缺陷,静态分析工具可以自动化该活动的重要部分,同时降低其成本。代码审查通常基于定义应识别和纠正哪些违规或缺陷的编码标准和/或检查表进行。

尤其是 C 语言,编码标准的流行示例是 MISRA C 和 CERT C,它们分别提供了增强安全性和安全性的指南(尽管这两个范围之间存在一些重叠)。MISRA C 指南的制定特别关注其静态分析的可执行性,这反映在可以自动实现的大量执行中。

但是,有两个不可避免的限制阻碍了全自动执行:

1. 在某些情况下,将静态分析器完全执行准则所需的所有信息形式化是不切实际的或不可能的。

2. 对于某些准则,即使所有信息都可用于算法,即使算法可以扩展以清除任何特定的假阳性或假阴性。

在最新版本的 MISRA C (2012) 中,这些限制反映在指南的分类中。当可以提供足够的信息时,将指南归类为规则;否则,它被归类为指令。当可以构造通用算法时,将规则分类为可判定的;否则,它被归类为不可判定。

指南有不同的优先级和不同的范围,但为了初步了解自动执行的潜在程度,159 条指南分为 16 条指令、27 条不可判定规则和 116 条可判定规则。

指令的一个示例是所有代码都应可追溯至文件化要求。在这种情况下,仅向静态分析器提供整个源代码和用于构建应用程序的编译器配置是不够的。首先,将任何重要的要求形式化是不切实际的或不可能的。

可判定规则的一个示例是不应使用#undef。在这种情况下,可以构造一个算法来扫描任何源代码并报告所有出现和仅出现#undef 预处理指令的情况。

不可判定规则的一个例子是项目不应包含无法访问的代码。你能想象一个算法可以精确识别任何项目中所有无法访问的代码实例吗?

不可判定性可能是一个相当不直观的概念。软件开发人员通常会面临一系列需要解决的问题,从微不足道到不可能,其中可以实现的限制通常由熟悉的因素决定,例如缺乏信息、问题过于复杂、资源消耗急剧增加域范围等

除了所有这些因素之外,编码标准的自动执行(或任何其他自动检测软件缺陷的非正式方式)涉及构建原则上可以自我分析的算法,这会引入一个循环性,如果一个额外的基本限制会导致一个悖论 - undecidability - 不妨碍构建一个健全和完整的分析仪。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144612
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73148
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在线测径仪是否配备测控软件分析系统?

    值),存储容量大,时间长达一年以上,支持按批次、时间范围查询历史数据。 3、数据分析与统计 自动计算平均值、标准差,生成直方图、趋势图等; 识别生产过程的波动趋势,帮助优化工艺参数(如调整轧制速度
    发表于 12-03 14:10

    从代码执行看单片机内存的分配

    单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器事先存放的指令阶段)和执行指令(
    发表于 12-02 07:58

    NICE指令的完整执行过程

    NICE指令的完整执行过程如下: 1、主处理器的译码单元提供EXU级译码得到指令的操作码,以判断其是否属于默认的自定义指令组。 如果该指令属于自定义指令,请根据命令编码的XS1位继续
    发表于 10-23 07:25

    汽车软件团队必看:基于静态代码分析工具Perforce QAC的ISO 26262合规实践

    ISO 26262合规指南,从ASIL分级到工具落地,手把手教你用静态代码分析(Perforce QAC)实现高效合规。
    的头像 发表于 08-07 17:33 867次阅读
    汽车软件团队必看:基于<b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>工具Perforce QAC的ISO 26262合规实践

    知识分享 | MXAM入门简介:使用MXAM进行静态测试

    在汽车和自动化行业,从事基于模型的开发(MBD)的工程师致力于在保证模型质量的同时保证模型高效。在这一背景下,应用适当的建模工具十分关键。合适的工具不仅可以通过建模标准检查来分析和测试模型质量
    的头像 发表于 07-23 17:09 1486次阅读
    知识分享 | MXAM入门简介:使用MXAM进行<b class='flag-5'>静态</b>测试

    动态BGP与静态BGP的区别?

    的 IP,只要远端发起 BGP 握手,且来自 AS 65002,即自动建立对等关系。四、实战应用场景分析场景一:传统运营商边界路由器 使用静态 BGP BGP 对等关系固定,变化极少 需要手动管理
    发表于 06-24 06:57

    自动驾驶安全程度达到99%是否就足够了?

    [首发于智驾最前沿微信公众号]五一假期,闲来无事,想到一个问题,现在监管部门对于自动驾驶的要求已经非常严苛,那自动驾驶要达到什么程度才算足够安全?如果达到99%,是否就可以商用了?抑或自动
    的头像 发表于 05-03 08:42 550次阅读

    DLP4500EVM是否支持自动循环从FLASH加载图片到BUFFER

    ,没有DLPLCR4500GUI-***-********.zip文件,能不能给出一个下载地址? 2. 一直没有找到这个文件DLPR350PROM_v2.0.0.bin,能不能提供一下? 3. DLP4500EVM是否支持
    发表于 02-27 06:50

    HarmonyOS NEXT 原生应用/元服务-性能分析基础耗时分析Time分析

    一、 函数耗时分析及优化 开发应用或元服务过程,如果遇到卡顿、加载耗时等性能问题,开发者通常会关注相关函数执行的耗时情况。DevEco Profiler提供的Time场景
    发表于 02-25 14:31

    集成电路设计静态时序分析介绍

    Analysis,STA)是集成电路设计的一项关键技术,它通过分析电路的时序关系来验证电路是否满足设计的时序要求。与动态仿真不同,STA不需要模拟电路的实际运行过程,而是通过
    的头像 发表于 02-19 09:46 1303次阅读

    VirtualLab Fusion 应用:光波导上的光栅分析和平滑调制光栅参数

    单击计算查找表来计算生成的光栅特性并将其存储在查找表。 查找表是针对在足迹和光栅分析工具的第一步确定的光栅参数和 FOV 模式的定义变化计算的。 查找表会自动保存到指定文件夹:
    发表于 02-10 08:50

    ADC的静态指标有专用的分析工具吗?

    请问:ADC的静态指标有专用的分析工具吗?该指标很少在评估ADC指标时使用,是否该指标不重要,应用什么情况下需要评估该指标? 另外ADC的SNR = 6.02*N + 1
    发表于 02-08 08:13

    自动点焊温度分析仪在工业应用的精准控制与分析

    自动点焊温度分析仪是现代工业生产中不可或缺的工具之一,尤其在焊接领域,其精准控制与分析能力对于确保产品质量和提高生产效率具有重要意义。随着科技的发展,自动点焊温度
    的头像 发表于 01-04 09:32 500次阅读

    电气安规分析仪的原理和应用

    限于绝缘电阻测试、接地电阻测试、泄漏电流测试等。通过内置的高精度传感器和微处理器,电气安规分析仪能够自动完成复杂的计算和分析,将测量结果以数字形式显示在屏幕上,并提供直观的波形图和数据
    发表于 12-24 14:13

    自动零件分析仪的原理和应用

    自动控制技术和数据处理技术。其主要由进样系统、分析系统和数据处理系统三部分组成。 进样系统:负责将待测零件或样品送入分析系统。这一系统通常通过泵、阀等组件将样品从样品容器抽取并送入
    发表于 12-23 15:22