如何在C ++中过滤掉未触及的代码

时间:2010-09-21 23:16:06

标签: c++ profiling

为了解剖/理解庞大的模板代码库,有一个工具可以告诉我哪些类/代码已经成为最终的二进制文件,这将非常有用。

例如,如果代码中有两个A类和B类,但我最终只实例化A,那么我会想知道过滤掉B.是否有任何工具可以实现基于模板的代码。

4 个答案:

答案 0 :(得分:1)

运行doxygen以生成引用图并查看未引用的类

答案 1 :(得分:1)

使用一些分析器/代码覆盖工具。某些版本的MS Visual Studio附带了分析器。然后有几个商业分析器/覆盖工具,如英特尔VTune。在与GCC的* nix上有gcov。

答案 2 :(得分:0)

您可以尝试使用nm

  

nm实用程序应显示符号   信息出现在对象中   文件,可执行文件或对象文件

虽然使用它并涉及其输出并不是很有趣。

作为一种不同的方法,是否不可能首先开始浏览/阅读/理解调用者代码以记下使用/包含的类?

答案 3 :(得分:0)

请参阅my answer我最近询问的问题。

想法是在启用“showIncludes”编译器选项后编译代码,然后处理输出以提取所需的信息(例如,手动或自动,使用python脚本)。

这样做,我已经能够提取用于构建我们软件的确切代码文件。