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使用手册》