gcov 统计 inline 函数

(金庆的专栏)

gcov可以统计 inline  函数,可是实际使用中碰到统计次数总是为0的现象。

假设类A的头文件为 A.h, 实现文件为 A.cpp.

A 有几个 inline  成员函数定义在 A.h 中。

使用 gcov  统计 A 的代码覆盖率时,可能会发现 A.h 中的 inline 成员调用次数为空或0。

除了确实未调用的原因,可能是 gcov 统计的对象错了。

"gcov A.cpp" 统计的是 A.cpp 中实现的函数代码,如果 A.cpp  中未调用自身的 inline  函数,统计结果确实为0。

只有到这些 inline 的调用方 cpp 文件中去统计,才会有想要的结果。

例如,B.cpp 中调用了 A 的 inline  函数,"gcov B.cpp" 才会统计出这些 inline 代码.

参考:

Why the inline function can not be covered?

另外,CMake  构建的.o文件命名不是 A.o,  而是 A.cpp.o,  所以

gcov A.cpp

会报 A.gcno 不存在。

实际文件应该是 A.cpp.gcno.

把它复制为 A.gcno 就行了。

或者用

gcov A.cpp.gcda

不知为什么,可以直接用 gcda 文件作为输入。

或者

gcov -o A.cpp.o A.cpp

这样应该是标准的调用方式。

最新文章

  1. Pro Mac 如何将英文文件夹汉化为中文
  2. keytool创建Keystore和Trustsotre文件
  3. HTTP请求 GET POST 网络编程实现(转)
  4. (置顶)js实现超过页面一屏后,点击图标滚动到页面顶部top
  5. EDIUS分别输出视频和音频的教程
  6. 恢复ext4文件系统superblock
  7. mysql 索引建立
  8. 【iOS开发】emoji表情的输入思路
  9. Cocos2d-x游戏开发之lua编辑器 Sublime 搭建,集成cocos2dLuaApi和自有类
  10. selenium中的对文本进行全选,复制,粘贴,剪切和删除的操作
  11. 安装 mongo 4.0
  12. Hello 博客!
  13. swust oj 956
  14. hdoj1905 Pseudoprime numbers (基础数论)
  15. 给JavaScript24条最佳实践
  16. Isomorphism 同构
  17. linux内核发生Oops时怎么办?
  18. Go Example--闭包
  19. listen的参数backlog的意义
  20. HashTable vs HashMap(三)

热门文章

  1. 开启CSP网页安全政策防止XSS攻击
  2. 关于Intellij Idea导出可执行打jar
  3. 关于html+ashx开发中几个问题的解决方法的感想和总结
  4. sql 复习练习
  5. 有趣的冷知识:编程中Foo, Bar 到底什么意思?
  6. Linux下查看alert日志文件的两种方法
  7. Unity中使用射线查询MeshCollider背面的方法
  8. python中的printf:%号拼接字符串和format函数
  9. Node.js Query Strings
  10. TensorFlow实验环境搭建