gpt4 book ai didi

gcc - 如何在没有优化的情况下将 gcov 与 gcc 一起使用?

转载 作者:行者123 更新时间:2023-12-02 05:05:28 25 4
gpt4 key购买 nike

我有一个这样的测试代码:

int diff21(int n)
{
if (n <= 21)
{
return 21 - n;
}
else
{
return (n - 21) * 2;
}
}

我添加了编译标志: -fprofile-arcs -ftest-coverage提供覆盖数据。

我写了这样的测试代码:
CU_ASSERT(diff21(19) == 2);

我用 lcov 生成了一个 html 报告,它说 else分行 return (n - 21) * 2被执行,所以我得到了 100% 的线路覆盖率。 这不是真的

我用谷歌搜索,发现是因为 this --- gcc 优化可以消除一些简单的代码行,将它们与其他行结合起来, 但是,如果我不应该使用 -fprofile-arcs -ftest-coverage,我应该如何生成覆盖数据?旗帜?

顺便说一句,我正在使用 netbeans 和 cygwin 进行单元测试,我不认为手动调用 gcov在 makefile 或脚本中对我有好处。

仅供引用,我正在使用 lcov:
#!/bin/bash

rm -rf coverage_report
rm -f app.info

lcov -b . -d . -c -o app.info
mkdir coverage_report
genhtml --legend --highlight -o coverage_report app.info
rm -f app.info
lcov -d . -z

最佳答案

尝试使用 -O0 编译旗帜。

关于gcc - 如何在没有优化的情况下将 gcov 与 gcc 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12189519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com