我知道使用-fprofile-arcs标志编译代码会在执行此代码后生成.gcda文件。与编译后的-ftest-coverage标志和.gcno文件一起,可以获得有关执行了哪些代码的信息以及获得所谓的代码覆盖率报告的次数。
是否有可能以类似的方式从.gcna文件中获取类似于gprof的配置文件信息,如函数调用计数和执行时间信息?
答案 0 :(得分:0)
我不敢这么说,但你误解了这里的术语。
GPROF:它是一个C / C ++程序分析器。其目的是为特定执行生成分析信息,其中包括性能统计信息,如不同函数之间的控制流,以及与父函数和子函数单独消耗的传播时间的关系。因此,这里的重点是在程序中找到性能降级点。
在哪里,
GCOV:它是一个C / C ++覆盖率分析工具。其目的是获取每个语句,分支和块的执行计数。因此,这里的重点是获取覆盖率统计数据。
因此,故事的寓意是这两种工具有不同的生活目的。 ;)
如果您希望同时获得gprof可以获得的信息,尽管它在很多情况下都有其局限性,它也会以方法级粒度为您提供覆盖率信息。