【发布时间】:2019-05-24 09:22:05
【问题描述】:
我正在尝试使用“gcovr”获取代码覆盖率。我使用-O0 作为优化级别。对于线路覆盖,我得到了我需要的结果,但不幸的是分支覆盖没有。根据以下answer,gcc 在编译时会产生额外的代码,这会影响程序中的分支数。有没有办法告诉gcc不要生成额外的代码,或者至少生成尽可能少的代码?
根据提到的答案,使用-O1 有助于生成更少的额外代码,但它并没有给我带来任何好处。相反,我得到了更多的行覆盖(这是错误的)和一个分支更少覆盖。
【问题讨论】:
-
切勿在生产代码中使用
-O0或-O1,它们仅用于调试。-O2或-O3要好得多,并且会产生很多的不同。做一个基准测试,看看他们带来的优势
标签: gcc code-coverage gcov gcovr