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

标签 python c linux shared-libraries

我遇到了从 python 脚本在共享库上运行 gcov 的问题。

我有以下构建库的场景:

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

    -static -fprofile-arcs -ftest-coverage -coverage

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

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

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

我在此处链接 .a 时是否遗漏了任何选项。

最佳答案

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

GCOV man page

关于python - 从 python 脚本在共享库上运行 gcov,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13598416/

相关文章:

c - 使用 MPI 库的递归函数

c - 初始化全局数组的所有元素时的垃圾值

c++ - 我可以在什么 IDE/编译器中开发将部署在 FreeBSD 服务器上的 C++ 代码。

python - 在 ctypes.Structure 中使用枚举

C : Unexpected behaviour, 返回的列表错误?

python - 在 Python 中的列表中查找子字符串

linux - 在 Linux 上使用 grep 压缩

c++ - 从 linux 在 C::B 上交叉编译以赢得 wxwidgets 代码?

Python3 SQLAlchemy 删除重复项

python - Django 未能为 python-ldap 构建wheel