lcov是gcov的图形化前端工具,根据gcov生成的内容,处理成一颗完整的html树,包括概述、覆盖率百分百、图标等轻便直观的内容。
在根CMakeList.txt中添加ENABLE_GCOV选项:
OPTION(ENABLE_GCOV "Enable gcov (debug, Linux builds only)" OFF)
IF (ENABLE_GCOV AND NOT WIN32 AND NOT APPLE)
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage")
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage")
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -lgcov")
ENDIF()
cmake编译时记得加选项:
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_GCOV=1 ..
编译后就可以看到图文件 *.gcno(.gcno是由-ftest-coverage产生的,它包含了重建基本块图和相应的块的源码的行号的信息)

本文介绍了如何使用gcov/lcov工具进行C++代码覆盖率分析。通过在CMakeList.txt中设置ENABLE_GCOV选项,添加编译标志,并在cmake编译时启用该选项。编译后生成的*.gcno和*.gcda文件分别包含基本块图信息和运行数据。使用lcov捕获覆盖率信息,生成testHtml.info文件,然后通过genhtml将信息转换为HTML报告,展示在result文件夹中。
最低0.47元/天 解锁文章
3574

被折叠的 条评论
为什么被折叠?



