gcov 统计 inline 函数
2024-10-20 01:31:32
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
这样应该是标准的调用方式。
最新文章
- Pro Mac 如何将英文文件夹汉化为中文
- keytool创建Keystore和Trustsotre文件
- HTTP请求 GET POST 网络编程实现(转)
- (置顶)js实现超过页面一屏后,点击图标滚动到页面顶部top
- EDIUS分别输出视频和音频的教程
- 恢复ext4文件系统superblock
- mysql 索引建立
- 【iOS开发】emoji表情的输入思路
- Cocos2d-x游戏开发之lua编辑器 Sublime 搭建,集成cocos2dLuaApi和自有类
- selenium中的对文本进行全选,复制,粘贴,剪切和删除的操作
- 安装 mongo 4.0
- Hello 博客!
- swust oj 956
- hdoj1905 Pseudoprime numbers (基础数论)
- 给JavaScript24条最佳实践
- Isomorphism 同构
- linux内核发生Oops时怎么办?
- Go Example--闭包
- listen的参数backlog的意义
- HashTable vs HashMap(三)