我有一个C ++库(.so),该库由另一个应用程序使用dlopen()打开。但是我需要在使用gcov在应用程序中运行时找到该库的代码覆盖率。可能吗?如果是,该怎么办?
如果没有,如何解决此问题?
dlopen()
,而是链接到库的静态库(.a)版本并仍然进行常规调用吗?-fprofile-arcs -ftest-coverage
的共享库>2)编译使用带有标志dlopen
的-fprofile-arc -ftest-coverage
的程序>
3)lcov以生成.info
文件
lcov --capture --rc lcov_branch_coverage=1 --directory path/to/.gcda --output-file coverage.info
4)生成html
genhtml coverage.info --branch-coverage --output-directory out