当前位置: 首页 > article >正文

IAR Embedded Workbench for Arm 使用技巧

1 C-RUN

  C-RUN直接集成在IAR Embedded Workbench for Arm中,在代码执行过程中进行动态代码分析,及时发现运行时发现的实际错误。
  C-RUN可以检查算术问题、边界问题和堆完整性,各个功能特点:

  • 算术问题:
    • 包括溢出、环绕、转换错误、除0、switch缺少default语句。
    • 通过在潜在错误可能发生的所有位置插入特点的测试代码检查此类错误。
    • 源代码级别的测试通常会被为插入一个if或者等效语句,检查条件,并将辅助信息内容打印在stdout或者特殊值写入端口以记录问题。
  • 边界问题:
    • 包括:典型的越界问题;
    • 越界概念可以推广到通过指针访问的任何内容、类型及大小。包括指向堆栈上的标量对象的指针,如果更改指针,指向堆栈上的某个内容,那么边界检查器可以检测到指针的新值是否在有效对象的边界内。
  • 堆完整性:
    • 完整性检查在每次调用malloc、free等函数时进行,无论是在C还是C++环境中。
    • 如果堆很大,堆完整性检查可能会对性能产生真正的负面影响,因为检查可能涉及到遍历整个堆,因此决定检查频率的方式对于应用程序至关重要。

  C-RUN具体功能包括:

  • 分析C和C++代码;

  • 可在工程配置栏“Runtime Checking”中进行设置;

    • 在这里插入图片描述
  • 独特的测试代码优化,最小化代码大小开销;

  • 全面详细的运行时错误信息提示;

  • 对每个发现的错误提供调用栈信息;

  • 编译器中反馈代码的相关性和图形;

  • 灵活的错误过滤管理;

  • 边界检查,确保对数组和其他对象的访问在边界内;

  • 缓冲区溢出检测;

  • 在类型转换时检测值的更改;

  • 检查计算中的溢出和环绕;

  • 发现位移操作中的位丢失;

  • 堆和内存泄漏检查;

  • 支持版本:IAR Embedded Workbench for Arm 7.20 版本及以上、IAR Embedded Workbench for RX 3.10 版本及以上;


http://www.kler.cn/a/418628.html

相关文章:

  • Unity类银河战士恶魔城学习总结(P149 Screen Fade淡入淡出菜单)
  • 【Linux】gdb / cgdb 调试 + 进度条
  • YOLO 标注工具 AutoLabel 支持 win mac linux
  • Linux设置开启启动脚本
  • 基于Java Springboot蛋糕订购小程序
  • Vue 3 中实现页面特定功能控制
  • 【深度学习】【RKNN】【C++】应用程序编程接口化处理详细教程
  • 计算机网络——数据链路层Mac帧详解
  • 良好的并发编程习惯之封闭(Confinement)
  • 缓存的进化历程说说
  • 映射vim键位,基本功能键位表(未更完)
  • 虚拟机docker记录
  • leetcode_2341. 数组能形成多少数对
  • Python 3 教程第22篇(数据结构)
  • 【Python运维】容器管理新手入门:使用Python的docker-py库实现Docker容器管理与监控
  • SOA、分布式、微服务之间的关系和区别?
  • 使用Canal将MySQL数据同步到ES(Linux)
  • node.js中实现MySQL的增量备份
  • 安卓mokey测试学习思路
  • Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5
  • 23种设计模式之桥接设计模式
  • Hadoop生态圈框架部署(九)- Hive部署
  • 游戏启动时“msvcr120.dll文件丢失”是什么原因以及解决方案。四种解决办法轻松搞定“msvcr120.dll文件丢失”问题
  • hadoop集群搭建
  • 如何使用Spring Boot进行Web开发?
  • mysql系列2—InnoDB数据存储方式