首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖范围和-fprofile选项

覆盖范围和-fprofile选项
EN

Stack Overflow用户
提问于 2018-01-31 11:16:40
回答 1查看 1.8K关注 0票数 7

Clang有一些与覆盖率样式分析相关的选项。命令行引用并没有真正说明它们中的任何一个是做什么的:

代码语言:javascript
复制
--coverage
-fprofile-arcs
-fprofile-instr-generate
-ftest-coverage
-fcoverage-mapping

根据llvm cov文档的说法,--coverage支持-fprofile-arcs-ftest-coverage,甚至更多。

两个-fprofile-..标志都以某种方式添加了一些工具来记录执行计数,但它们做的事情完全一样吗?如果是的话,为什么两者兼而有之?

llvm cov文档说,-fprofile-arcsllvm-cov gcov一起使用,-fprofile-instr-generatellvm-cov show一起使用。为什么?这里发生什么事情?

-fcoverage-mapping-ftest-coverage到底做了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-01-31 12:41:51

我开始阅读代码,据我所知:

--coverage支持-ftest-coverage-fprofile-arcs,并在Linux上添加-u__llvm_runtime_variable,或者类似的东西。

-fprofile-arcs-fprofile-instr-generate是不同的。前者添加-femit-coverage-data,后者添加-fprofile-instrument=clang (其他选项为"none“或"llvm")。

-ftest-coverage添加-femit-coverage-notes

-fcoverage-mapping添加-fcoverage-mapping

然后,这些选项具有以下效果:

代码语言:javascript
复制
ProfileNone,       // Profile instrumentation is turned off.
ProfileClangInstr, // Clang instrumentation to generate execution counts
                   // to use with PGO.
ProfileIRInstr,    // IR level PGO instrumentation in LLVM.

因此,这回答了一些问题,但似乎确实有两种完全不同的剖析系统,我不确定它们之间的区别。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48540859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档