当 gcc 4.1(使用 gcov)下一行时:
p = new Class;
据报告,分支覆盖率为 100%
为什么使用 gcc 4.4 及更高版本同一行报告为:
[+ -] p = new Class; (50% branch coverage)
...
我可以为较新的 gcc 版本设置任何额外选项,以便报告与 gcc 4.1 相同的单行分支覆盖率吗p = new Class;
?
Solved !
我们有一些带或不带异常处理的 C/C++ 文件,因此 lcov/gcov 为每个代码块处理“异常处理”。
在普通块内,例如:
int main(void)
{
...
...
[+ -] printf("Hello\n");
...
}
gcov 报告 printf 行的“分支覆盖率”为 50% ---> 为什么?
因为异常处理已启用!
为了解决这个问题,指定:
-fno-例外
在 g++ 命令行中。
Example:
g++ -O0 --覆盖-fno-例外-fno-内联 ....
Thanks !
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)