1

当我做 gcov 。没有问题。但是,当我执行 gcov -a 时。gcov 冻结了。输出的最后几行是:

文件 '/usr/include/boost/archive/detail/iserializer.hpp' 执行的行数:78.18% of 55 /usr/include/boost/archive/detail/iserializer.hpp:creating 'iserializer.hpp.gcov'

文件 '/usr/include/boost/serialization/extended_type_info_typeid.hpp' 执行的行数:40.74% of 27 /usr/include/boost/serialization/extended_type_info_typeid.hpp:creating 'extended_type_info_typeid.hpp.gcov

你知道为什么会这样吗?我需要“-a”的原因是当我使用 lcov 时,它为 gcov 提供了该选项,我可以破解 geninfo 以忽略该选项,但我不想这样做,因为我最终会在公共系统上运行 lcov。

感谢您的任何投入!

4

1 回答 1

0

我也有使用 boost::serialization 的代码——lcov 进程不是 /frozen/,它只需要很长时间才能运行。几个小时后,我成功完成了它,我终于得到了一份不错的 lcov 报告。

如果能够在运行 lcov -c 时排除对 boost 序列化代码的处理,那就太好了,但我还不能确切地弄清楚如何做到这一点。(当然,我/想要/覆盖使用 boost 序列化的代码,而不是 boost 标头本身)即使在大多数序列化代码周围放置 // LCOV_EXCL_START & LCOV_EXCL_STOP 也不起作用,因为我认为那些排除标记仅在调用 genhtml 时使用,而不是在 lcov -c 上。

于 2012-03-01T00:17:29.087 回答