SylixOS---程序代码覆盖率分析

01/06 11:09
阅读数 32

程序代码覆盖率分析主要分为以下几步:

  1. 右击需要分析的工程,选择菜单“Properties”,选择“SylixOS Project”下的“Compiler Setting”,在弹出的窗口中勾选“Enable gcov(Code coverage analysis)”“OK”保存设置。
    在这里插入图片描述
  2. 编译程序,在工程编译输出目录的 obj 文件夹下会为被编译的每个源文件生成“源文件名.o”“源文件名.gcno”文件。
    在这里插入图片描述
  3. 上传应用程序可执行文件(本例为“app_demo”)到目标设备并执行文件,程序退出后
    在可执行文件同级目录下会生成 obj 目录,该目录中保存了每个源文件在程序执行后生成的
    “源文件名.gcda”文件。
    在这里插入图片描述


  4. 右击需要分析的工程,选择“SylixOS Coverage Analysis→Show Coverage Rate”
    至此,每个源文件在程序工程编译输出目录下的 obj 文件夹中存在三个与之对应的文件,即:
    “源文件名.o”“源文件名.gcno”“源文件名.gcda”。在 gcov 标签页中可查看源文件代码
    覆盖率,双击列表中的行可定位到源代码,同时在源码文件中以不同的颜色标识各行代码的
    执行次数。选中列表中的“app_demo.c”一行,点击 ,选择“Bar graph”,可以更直观的
    查看代码覆盖率分析图。
    在这里插入图片描述
    :如果更改了源文件,在第四步中需要先选择“SylixOS Coverage Analysis→Get Coverage Rate File”,再选择“SylixOS Coverage Analysis→Show Coverage Rate”






内核模块代码覆盖率分析与应用程序基本一致,不一样的是内核模块不能被执行,需运
“modulegcov”命令生成“源文件名.gcda”文件。其操作流程如下:

  1. 模块中添加如下代码。
extern void __gcov_flush();
LW_SYMBOL_EXPORT void module_gcov (void)
{
   
   
__gcov_flush();
 printk("module_gcov() run!\n");
}
  1. 按照图 7.2 设置工程,编译并下载内核模块文件到目标系统,注册模块并执行
    “modulegcov”命令,生成“源文件名.gcda”文件。
    在这里插入图片描述

  2. 右击需要分析的工程,选择“SylixOS Coverage Analysis→Show Coverage Rate”。至此,
    每个源文件会在程序工程编译输出目录下的 obj 文件夹中都存在三个与之对应的文件,即:
    “源文件名.o”“源文件名.gcno”“源文件名.gcda”。选择过工程目标文件后即可查看代
    码覆盖率分析结果。在 gcov 标签页中可查看源文件代码覆盖率,双击列表中的行
    可定位到源代码,同时在源码文件中以不同的颜色标识各行代码的执行次数。选中某一行,
    点击 ,选择“Bar graph”,可以更直观的查看代码覆盖率分析图。
    在这里插入图片描述
    在这里插入图片描述






展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部