【问题标题】:git blame-like annotation of source files with gcov使用 gcov 对源文件进行 git blame 式注释
【发布时间】:2016-02-25 22:11:26
【问题描述】:

我已在我的项目中成功设置 gcov,以使用 lcov 生成带有代码覆盖率数据的 HTML 文件。但是,由于我经常仅通过 SSH 和文本控制台工作,因此我正在寻找一种方法来生成带注释的源文件,例如 git-blame 对历史的处理:

covered     source_line();
not covered other_source_line();

有可能吗?

【问题讨论】:

    标签: c gcov


    【解决方案1】:

    当您说gcov 时,我假设您指的是gcovr,因为gcov 不会输出为HTML 格式。 gcovr 确实输出到 HTML。 gcovr 基本上只是 gcov 的包装。

    要获取带注释的源文件,您只需使用gcov即可。

    gcov,默认情况下,注释源文件。

    要使用 gcov 运行,您只需要使用 -fprofile-arcs -ftest-coverage -fPIC -O0 编译,并链接到 gcov 库(-lgcov)。

    然后运行你的程序。

    然后发出以下命令:

    gcov main.c
    

    main.c 是您想要在其中进行注释分析的任何文件。

    之后,您会注意到创建了一个新文件(main.c.gcov)。这是您要查找的文件。

    Here'sgcov 用法的链接

    【讨论】:

    • 不,我忘了说 HTML 是由 lcov 生成的,而不是 gcov。这些.gcov 文件有点神秘,有很多像123. /* EOF */ 这样的行我看了一下,我猜这就是lcov 解析的内容,也许我可以从中创建所需的输出。
    • 没错。 lcov 只是使用那些 .gcov 文件来创建漂亮的 html 页面。 gcov 绝对是您想要的。可能需要对选项进行一些调整。这一切都记录在我提供的 gcov 链接中
    • 另外,lcov 也很不错。为什么不直接通过 scp 将 html 文件复制回您的计算机,然后使用 Web 浏览器查看文件?
    • 由于移动带宽限制 :) 我现在玩 gcov 很开心,我很快就会在某个地方发布结果(ish)。
    • 原来我只需要gcov -a main.c 它只生成我需要的输出。
    猜你喜欢
    • 2018-08-30
    • 2021-10-17
    • 2017-12-15
    • 2016-04-19
    • 2016-09-18
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多