博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SylixOS 调试方法详解(二)——SylixOS 代码覆盖率检查
阅读量:6298 次
发布时间:2019-06-22

本文共 1539 字,大约阅读时间需要 5 分钟。

hot3.png

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

    105744_P3QK_3491369.png

图 2‑1  编译结果

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

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

105752_pzhi_3491369.png

图 2‑2 运行coverage_check_app

 

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

105759_usNO_3491369.png

图 2‑3  设置调试工具

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

105806_rF5N_3491369.png

图 2‑4  操作步骤

 

 

 

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

105817_rbhf_3491369.png

图 2‑5  抓取成功

 

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

105824_jfl6_3491369.png

图 2‑6  抓取不成功

 

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

105832_Iu0p_3491369.png

图 2‑7  进行覆盖率分析

 

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

105838_RDqu_3491369.png

图 2‑8 冗余检查

 

3. 总结

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

4. 参考资料

《SylixOS应用程序开发手册》

《RealEvo-IDE使用手册》

转载于:https://my.oschina.net/u/3491369/blog/1512596

你可能感兴趣的文章
读书--编写高质量代码 改善C#程序的157个建议2
查看>>
css create 多边形 polygon
查看>>
js字符串转化为方法调用
查看>>
mybatis源码分析(2)——事务概述
查看>>
[Contest20170910]string
查看>>
[HDU5828]Rikka with Sequence
查看>>
java反射技术
查看>>
windows系统如何添加ssh key到github
查看>>
转 graphviz工具及其原理
查看>>
HTML的入门概念
查看>>
hdu 4632 子字符串统计的区间dp
查看>>
Oracle PL/SQL编程学习笔记:游标
查看>>
(转载)hadoop(13) 添加或删除datanode节点
查看>>
Python 匿名函数
查看>>
scrapy多个page爬取, post请求, 通过爬到的URL继续发请求爬页面
查看>>
bzoj 1189 紧急疏散 网络流
查看>>
2015年获得大数据顶尖职位必备的9项技能
查看>>
JTA和JTS
查看>>
OC实例变量和属性-@synthesize与@property
查看>>
MP3 编码解码 附完整c代码
查看>>