文档章节

SylixOS 调试方法详解(二)——SylixOS 代码覆盖率检查

E
 Esc130
发布于 2017/08/18 10:59
字数 855
阅读 9
收藏 0

1. SylixOS调试方法介绍

SylixOS 实现了一个功能强大的调试 stub,可在设备或模拟器上在线调试应用程序,RealEvo-IDE 也提供配套的调试插件。目前 RealEvo-IDE 既支持自动推送调试、也支持传统的手动启动 gdbserver 的调试方式。在官方公布的使用手册中没有详细写出在日常开发中非常实用的几种调试方式,我们通过新建几个app工程来做相应的演示,主要有代码静态分析、代码覆盖率检查、性能分析以及一个实战案列的演示,本文主要介绍代码覆盖率检查调试。

2. SylixOS调试步骤详解

代码覆盖率检查主要用来防止出现多余代码,通过建立一个“coverage_check_app”来做代码覆盖率检查的演示,程序清单如程序清单 2‑1所示。

程序清单 2‑1  static_check_app清单

#include <stdio.h>

void test()

{

   printf("Hello SylixOS!\n");

}

 

int main (int argc, char **argv)

{

    printf("Hello SylixOS!\n");

 

    return  (0);

}

 

 

       所用demo程序编译未报错,可成功上传,程序编译结果如图 2‑1所示,在编译过程中也不会发现任何错误,但代码本身存在冗余现象。通常代码量比较小的情况下,可以通过人工排查的方式减少该现象,从而提高代码质量,但是在代码量比较大,代码编写人员较多时,就无法避免这种状况,这样会对项目周期、项目质量造成比较大的影响,也会增加测试人员的工作量。这些都不利于项目开发和工作效率的提高。

    

图 2‑1  编译结果

这种情况下可以通过RealEvo-IDE中自带的代码覆盖率检查工具解决这一类开发难题。

编译上传之后打开RealEvo-Simulator,打开对应的架构平台,运行demo程序,如图 2‑2所示。

图 2‑2 运行coverage_check_app

 

选中需要调试的工程,这里选择“coverage_check_app”工程,右击工程选择“Properties”,点击“SylixOS Project”,选择“Compiler Setting ”     ,勾选“Enable govc(Code coverage analysis)”,如图 2‑3所示。

图 2‑3  设置调试工具

       选中需要调试的工程,这里选择“coverage_check_app”工程,右击工程选择“SylixOS Coverage Analysis”,点击“Get Coverage Rate File”,操作如图 2‑4所示。

图 2‑4  操作步骤

 

 

 

  成功抓取文件,如图 2‑5所示。

图 2‑5  抓取成功

 

若不运行程序,则无法成功抓取文件,如图 2‑6所示。

图 2‑6  抓取不成功

 

抓取完成后,选中需要调试的工程,这里选择“coverage_check_app”工程,右击工程选择“SylixOS Coverage Analysis”,点击“Show Coverage Rate”,如图 2‑7所示。

图 2‑7  进行覆盖率分析

 

运行结果如图 2‑8所示,代码存在同于现象,可以通过分析代码进行优化,减少这种情况,提高代码质量。

图 2‑8 冗余检查

 

3. 总结

在SylixOS中可以使用多种调试方式进行相关调试,根据实际情况对程序进行调试,本节主要介绍代码覆盖率检查的具体调试方式,下一节将详细介绍性能分析调试。

4. 参考资料

《SylixOS应用程序开发手册》

《RealEvo-IDE使用手册》

© 著作权归作者所有

共有 人打赏支持
E
粉丝 0
博文 10
码字总数 8146
作品 0
南京
SylixOS-IgH系统平台搭建

1.参考手册 下面7个文件存放在本地服务器“\10.9.1.113.研发部9.ExchangeFolder郑磊”路径下 《RealEvo-IDE使用手册》 《SylixOS应用开发手册》 《SylixOSshell用户手册》 《SylixOS-IgH使用...

zhengleich
05/15
0
0
SylixOS调试方法详解——性能分析

1. SylixOS调试方法介绍 SylixOS实现了一个功能强大的调试stub(桩),可在设备或模拟器上在线调试应用程序,RealEvo-IDE也提供配套的调试插件。目前RealEvo-IDE既支持自动推送调试、也支持传...

Esc120
06/26
0
0
SylixOS调试方法详解——综合案例分析

1. SylixOS调试方法介绍 SylixOS实现了一个功能强大的调试stub(桩),可在设备或模拟器上在线调试应用程序,RealEvo-IDE也提供配套的调试插件。目前RealEvo-IDE既支持自动推送调试、也支持传...

Esc120
06/26
0
0
SylixOS调试方法详解——综合案例分析

SylixOS调试方法介绍 SylixOS实现了一个功能强大的调试stub(桩),可在设备或模拟器上在线调试应用程序,RealEvo-IDE也提供配套的调试插件。目前RealEvo-IDE既支持自动推送调试、也支持传统...

Esc130
2017/10/25
0
0
SylixOS上EtherCAT实现

1 EtherCAT开源协议栈介绍 目前常见开源的主站代码为RT-LAB开发的SOEM(Simple OpenSource EtherCAT Master)和EtherLab的the IgH EtherCAT® Master,SylixOS对两者都支持。其中IgH作为常用的...

Jackstraw瑞
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash各类扩展详解

Bash各类扩展详解 Bash中主要包括大括号扩展、波浪号扩展、变量扩展、子命令扩展、文件名扩展和算数扩展。这些扩展组合在一起为Bash带来了极大的易用性。掌握这些扩展的用法和功能,能够为B...

小陶小陶
36分钟前
1
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
1
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
1
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部