【问题标题】:how to do source code coverage of gcc compiler如何对 gcc 编译器进行源代码覆盖
【发布时间】:2019-05-20 03:00:56
【问题描述】:

对于给定的示例程序,我想知道在编译期间使用了 GCC 源代码的哪一部分。

构建 GCC: 我尝试使用

构建 gcc-8.2 源代码
./src/configure --enable-languages=c,c++
    --disable-bootstrap --disable-multilib BOOT_CFLAGS="-O2 -g -ftest-coverage -fprofile-arcs"

我有一个名为 program.c 的示例程序

我正在用 xgcc as 编译 program.c

/path/to/xgcc -B path/to/stage1build/gcc -ftest-coverage program.c

上面的命令给了我程序的代码覆盖率。问题是我不想使用 gcov 和 lcov 找到 program.c 的代码覆盖率。

我想查找 gcc 源代码的代码覆盖率。

我尝试在网络上搜索,但几乎所有答案都通过给出示例 .c 程序的示例告诉我如何使用 gcov 和 lcov。

注意: 我知道如何使用 gcov 和 lcov

【问题讨论】:

  • 也许在构建 gcc 而不是编译程序时尝试使用-ftest-coverage 标志? -- 编辑 -- 我不是 gcc 专家,只是做出有根据的猜测。

标签: c gcc code-coverage gcov


【解决方案1】:

根据在线搜索BOOT_CFLAGS,它似乎为您将要编译的代码设置了默认编译器标志。
参考这里:1,2

可能你需要运行类似这样的配置:

./src/configure --enable-languages=c,c++ --disable-bootstrap --disable-multilib CFLAGS="-O2 -g -ftest-coverage -fprofile-arcs" CXXFLAGS="-O2 -g -ftest-coverage -fprofile-arcs"

但在启用覆盖GCC Build with coverage 进行构建时,您可能会遇到其他问题。

最好在 GCC 邮件列表上发帖,看看是否有人有可能的解决方案。

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多