• 0
  • 0
分享
  • 嵌入式软件随机故障诊断工具SMA
  • 饭团🍙 2020-08-17 11:39:06 字数 1756 阅读 2113 收藏 0

  嵌入式实时系统中的一些随机软件故障会导致系统的崩溃。这些随机故障通常是由非法的内存访问引起的,包括:

  · "CPU饥饿"在内的各种死锁;

  · 堆栈溢出;

  · 数组越界;

  · 内存泄漏。

  由于故障的随机性,它们难以复现和检测。

  11.2.1 CPU饥饿

  程序并行化以后,还会遇到共享数据的访问的问题。

  如果多个线程对共享数据都是只读操作,那么对共享数据的访问不需要加锁保护;

  如果多个线程对共享数据的访问存在写操作,那么对共享数据的访问必须加锁保护。

  在有锁保护的共享数据访问模型中,一旦一个线程取得了锁,那么其他线程在进行锁操作时都必须等待。这样只有一个线程在运行,导致只有一个CPU核在运行,其他CPU核都处于饥饿状态。

  解决共享数据访问的最有效方案就是共享资源分布式计算。

  传统的调试工具(如主机-代理调试器、JTAG等)在遇到这类问题时有着不可避免的局限性:

  · 用户只能看到目标机上的少量内存段;

  · 只能用在开发阶段;

  · 用户必须在故障发生之前的很长时间内就要决定在哪里停止程序的运行以及要检测哪些信息。

  这正是难以定位故障的主要原因。

  针对上述问题,RTBF(Real-Time Bug Free)公司提出了具有针对性的SMA(Smart Memory Analyzer)工具。RTBF是世界上首家成功地把嵌入式实时系统的完整内存映像自动转换为可读信息的公司。SMA采用事后分析(post-mortem)技术对由工具在故障发生时"冻结"的内存映像进行分析。原始的内存映像是不可读的二进制数据,经SMA分析后便呈现为具有良好结构和可读性的形式。SMA记录了内存映像被保存时的系统总体状态,包括任务、信号量、消息队列、变量、内存分配、通讯缓冲…。这些信息可以帮助开发工程师定位排查随机故障,系统工程师也由此可以更详细地观察系统状态。而且,SMA创建了快速有效的环形缓冲日志,允许对系统运行时的变量进行跟踪。目前,SMA支持VxWorks.

  11.2.2 检测功能

  · 适用的处理器包括:x86、arm、MIPS以及Power PC;

  · 适用的编译器包括:GNU、DIAB;

  · 主机平台:所有版本的Windows;

  · 显示包括类型定义、结构、联合、向量和枚举在内的所有变量;

  · 显示所有任务的状态;

  · 显示看门狗:记录内存映像创建时所有还未被处理的时间相关事件;

  · 显示信号量:三种(二进制、互斥、计数)信号量及其状态和拥有者;

  · 消息队列:队列号、队列中最大消息数、单条消息的最大容量、空闲消息的数量、收发消息失败的延时;

  · 显示所有空闲内存区域、观察分配的内存块、观察内存分配的丢失情况(内存泄漏);

  · 显示所有文件描述符和套接字;

  · 显示SNMP树;

  · 搜集所有错误与警告;

  · 显示环形缓冲的状态;

  · 显示网络缓冲的状态;

  · 计算由任务占据的CPU负载;

  · 自动检查大量的常用编程错误,并在需要时给出警告:

  · 对复制的声明(不同类型带有相同的名字)给出警告;

  · 只读区域在运行中被改写时给出警告;

  · 如中断向量表之类的特殊内存区域在运行时如果被偶然改写,也给出警告。

  11.2.3主要好处

  · 精确定位难以调试的随机软件故障

  · 内存映像分析所提供的信息使得开发者可以很轻易地定位到那些即使是比较罕见复杂的软件故障,通常是在它们发生的第一次后就能发现。

  · 加速开发过程:

  软件故障发生时,SMA为开发者提供了详细可读的系统状态。这些信息帮助开发者在几小时之内就能定位和修正错误,而不是往常那样需要花费几天甚至几周的时间。

  · 减少开发投资:

  SMA缩短了嵌入式软件开发的周期,也因此减少了开发投资。

  · 增加软件可靠性:

  通常来讲,使用了SMA,那么故障发生的第一次也是它发生的最后一次。在减少开发投资的同时,也增加了软件的可靠性。

  · 软件工程过程的新视角:

  SMA详细、准确、可读地描述了系统状态,它为系统工程师提供了新的视角,使其在看待系统整体时不会漏失具体细节。

  分析与故障发生的位置和时间无关。



作者:顾翔   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   美国汽车制造商特斯拉公司上周日宣布,将在上海新建一家超级工厂,专门生产该公司的超大型储能商用电池Megapack。特斯拉CEO埃隆·马斯克在推特转发官宣推文,表示新工厂将作为加州工厂Megapack产能的扩充。  据悉,该工厂初期规划年产商用储能电池可达1万台,储能规模近40GWh,产品提供范围覆盖全球市场。该项目计划于2023年第三季度开工,2024年第二季度投产。作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 932
            分享
          •   通用的测试管理过程主要可以分为三个部分:测试计划、测试监控和控制、测试完成。  从研发项目角度出发,测试管理过程可以用于不同级别的项目测试管理。  从测试阶段出发,测试管理过程可以用于不同测试阶段的测试管理,如集成测试、系统测试、验收测试等。  从测试类型出发,测试管理过程可以用于不同类型的测试管理,如功能测试、性能测试。  测试计划过程  测试计划过程用于制定测试计划。根据测试计划过程在项目中所处的位置不同,可以分为整体的测试计划(如系统测试计划),或某个类型的测试计划(如性能测试计划)。  创建一个测试计划,可以参考如下图1所示的过程。图1 测试计划过程  上图中箭头文字表示的是每一个...
            0 0 815
            分享
          • 截至发稿股价跌幅已超过2%,业内预测,富士康郑州工厂的疫情可能使该厂区11月产能减少达30%。供应链的阴影笼罩了苹果即将到来的假日季。在苹果iPhone全球最大的组装工厂富士康河南郑州工厂发生疫情后,苹果全球产品供应情况如何也引发关注,全球大约一半苹果iPhone从该工厂流出。10月31日美股开盘后,苹果股价跌幅迅速扩大,截至发稿股价跌幅已超过2%,业内预测,富士康郑州工厂的疫情可能使该厂区11月产能减少达30%。供应链的阴影笼罩了苹果即将到来的假日季。第一财经记者向苹果中国方面求证iPhone全球供应是否会受到富士康郑州工厂供应链影响,公司未予回应。不过投资人已经表达了担忧。摩根士丹利分析师...
            0 0 845
            分享
          • 读者提问:开源持续测试平台有推荐的吗 ?阿常回答:有,MeterSphere。官网地址:https://metersphere.io/Github地址:https://github.com/metersphere (开源社区)官方文档:https://metersphere.io/docs/index.html教学视频:https://metersphere.io/video.html阿常碎碎念:MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等,全面兼容 JMeter、Selenium 等主流开源标准,能够有效助力开发和测试...
            0 0 979
            分享
          • 读者提问:有哪些好用的测试用例管理工具?阿常回答:这个问题我从三点回答1、为何要采用测试用例管理工具;2、有哪些常见的测试用例管理工具;3、如何来选取测试用例管理工具。一、为何要采用测试用例管理工具以前我们用 Excel 来维护测试用例,产品发布前把 Excel 里的用例过一遍,这样做似乎是可行的。但随着项目的迭代,项目复杂度的增加,用例的版本也越来越多,Excel 的缺点也逐渐显现。通过 Excel 维护用例,我们遇到的挑战:1、多人协作,用例没有统一存放地点2、项目迭代,用例如何保证常用常新3、用例设计,如何方便复用基础用例二、市面上常见测试用例管理工具Testhub、Jira、禅道、TA...
            0 0 1408
            分享
      • 51testing软件测试圈微信