当前位置: 首页 > news >正文

滨州教育平台 网站建设郑州市网站和公众号建设

滨州教育平台 网站建设,郑州市网站和公众号建设,网站搭建分站需要多少钱,商丘网站制作电话GCOV 工具简介 gcov是一个测试代码覆盖率的工具。 它是 gcc 自带的查看代码覆盖率的工具#xff0c;无需额外安装#xff0c;在嵌入式的 arm-eabi-none-gcc 中同样可以使用#xff08;需要重写部分系统函数#xff09;。 使用效果如下图所示#xff1a; 程序运行完成后…GCOV 工具简介 gcov是一个测试代码覆盖率的工具。 它是 gcc 自带的查看代码覆盖率的工具无需额外安装在嵌入式的 arm-eabi-none-gcc 中同样可以使用需要重写部分系统函数。 使用效果如下图所示 程序运行完成后可以查看每个文件的代码覆盖率情况上面报告中展示了每个文件的行覆盖率函数覆盖率和分支覆盖率。 打开一个文件的覆盖率报告页面对开始有文件的基本信息描述以 FreeRTOS 的 task.c 为例它的有效代码行数为 921 行共 24 个函数几千行的文件其实也没多少嘛 在覆盖率的正文有该文件的完整代码并用不同颜色进行高亮标注了 蓝色表示运行被覆盖的代码前面的数字表示代码执行次数。红色表示未执行代码。白色表示无效代码包括注释空行和未编译代码。 gcov 使用 使用 gcov 的流程非常简单只需要三步即可。 下面以 hello world 为例展示生成覆盖率报告。 代码如下 //main.c#include stdio.hint main(int argc, char **argv) {printf(hello world\n);return 0; }第一步 添加编译参数 -fprofile-arcs -ftest-coverage 在所需要的生产覆盖率的文件中添加编译参数编译代码生成目标文件同时会生成 *.gcno 文件其中包含文件的行号等信息。 gcc main.c -c -fprofile-arcs -ftest-coverage -o main.o ls # 输出文件列表: # main.c main.gcno main.o gcc main.o -lgcov -o main第二步: 添加链接参数 -lgcov 运行程序 运行程序后会生成一个 *.gcda 文件里面包含代码执行次数等数据。 gcc main.o -lgcov -o main # 运行程序 ./main # hello world ls # 输出文件列表: #main main.c main.gcda main.gcno main.o第三步: 输出覆盖率报告 使用下面命令输出覆盖率报告 # 第一次使用前安装工具 sudo apt install lcov# 生成覆盖率文本报告 lcov -c -d . -o test.info --rc lcov_branch_coverage1 # 生成覆盖率网页报告 genhtml --branch-coverage -o result test.info 输入上面两/三条命令后在执行命令的文件路径可以看到一个 result 文件夹在里面就是对应的网页覆盖率报告。 用浏览器打开 index.html 就可以看到最开始展示的覆盖率信息了。 特殊环境使用注意点 在正常使用 gcov 是非常简单的但是在特殊项目中使用 gcov 需要注意一些坑否则就会跟我一样掉进去出不来。。。 链接时会在 .init_array 段插入 __gcov_init() 函数该函数在 main 运行之前初始化 gcov 运行环境。 如果修改过链接脚本注意 .init_array 的全局构造函数是否执行成功。和上面一样链接时会在全局析构函数中插入 __gcov_exit() 函数在 main 执行结束后输出 *.gcda 文件。 如果程序为异常退出则不会生成 *.gcda 文件此时需要在代码适当位置插入 __gcov_flush() 函数将文件进行保存。默认状态 *.gcda 文件和 *.gcno 文件所在文件夹相同如果需要修改输出文件夹可通过添加环境变量GCOV_PREFIX 和 GCOV_PREFIX_STRIP GCOV_PREFIX_STRIP16 为将原有路径裁剪16个文件夹。 GCOV_PREFIX/home/tester/build 为将裁剪后的路径添加前缀 例如上文中默认 main.gcda 所在的文件 /home/tester/main.gcda裁剪后添加前缀后变为/home/tester/build/main.gcdagcov 内部使用了一些系统函数需要确保这些哈是函数可用 实现原理 gcov 实现基本原理为在编译时向代码中插桩记录运行时的执行流具体细节可见参考链接两位大佬的详细分析我就在在此赘述了。
http://www.pierceye.com/news/6956/

相关文章:

  • 个人网站模板源码福田做商城网站建设找哪家公司好
  • 校友会网站建设方案wordpress+andriod
  • 网站 购买app推广联盟
  • 建设部人事教育司网站家具行业做那个国际网站比较好
  • 自己做网站卖东西需要交税吗深圳华强北赛格大楼晃动
  • 佛山外贸企业网站建设wordpress 免费
  • 为企业做一个网站多少钱旅行社网站设计方案
  • 重庆网站seo搜索引擎优化上交所互动平台
  • 旅游投资公司网站建设有什么做网兼的网站
  • 网站建设对网络营销有哪些影响后台原网站被转接
  • 网站集约化建设讲话宿迁房产网最新房价
  • 重庆新闻发布会最新如何学做网站优化
  • 那些做测评的网站好seo搜狗排名
  • 快乐无极网站js 调用本地wordpress
  • 连江县住房和城乡建设局网站企业做电商网站有哪些内容
  • 网站建设移动网络公司网页版企业邮箱
  • 长沙php网站建设网上有几个购物平台
  • 苏州专业网站建设设计公司哪家好排版设计模板
  • 网站config配置教程番禺建设网站系统
  • 万家灯火网站建设哪个网站是教人做淘宝客的
  • 好看开源企业网站模板广东网站备案网站建设方案书
  • 临沂做网站网易企业邮箱登入路口
  • 中文域名解析网站设计企业网站内容
  • 建筑网站建设wordpress毛玻璃主题
  • 免费空间网站saas云建站
  • 网站服务器是指什么新郑郑州网站建设
  • 外贸推广建站蓝颜seo牛做美食教程的网站
  • 网站建设首期款中国设计联盟网服务特点
  • 网站维护优化jetpack报错 wordpress
  • 自己提供域名做网站成全视频免费观看在线看收索