从 python 脚本在共享库上运行 gcov

Dex*_*ter 5 c python linux shared-libraries

我面临着从 python 脚本在共享库上运行 gcov 的问题。

我在构建库时遇到以下情况:

  1. 将一组文件(file1.c、file2.c)编译为静态链接的 lib(.a)。我使用 ar 实用程序来执行此操作,并且所有文件都使用以下选项进行编译:

    -静态-fprofile-arcs -ftest-覆盖率-覆盖率

  2. 使用其他一些文件(例如 file3.c)和上面指定的 .a 文件构建 .so 文件。我在编译和链接时再次使用相同的选项。

  3. 在python脚本中加载.so并执行。

问题:生成的覆盖率文件仅包含 file3.c 的代码覆盖率。属于 .a 库一部分的文件不会显示在覆盖率报告中。

我在此处链接 .a 时是否缺少任何选项?

Dex*_*ter 1

发现问题了。我没有选取所有 .gcda 文件来生成报告。使用 -object-directory 选项搜索所有 gcda 文件。

GCOV 手册页