我有遗留的C++代码,我应该从中删除未使用的代码。问题是代码库太大了。
我如何找出哪些代码从未调用过/从未使用过?
发布于 2011-01-27 16:27:12
我想您正在寻找一个code coverage工具。代码覆盖工具将在代码运行时分析代码,它将让您知道哪些代码行执行了多少次,以及哪些代码行没有执行。
您可以尝试一下这个开源的代码覆盖工具: C/C++和C#的TestCocoon代码覆盖工具。
发布于 2011-01-27 18:00:34
我自己没有用过它,但是cppcheck声称可以找到不用的函数。它可能不会解决完整的问题,但它可能是一个开始。
发布于 2011-01-27 23:26:31
在不导致编译错误的情况下,将尽可能多的公共函数和变量标记为私有或受保护的,同时,尝试也重构代码。通过将函数设置为私有的并在某种程度上受到保护,您可以缩小搜索区域,因为私有函数只能从同一个类中调用(除非有愚蠢的宏或其他技巧来规避访问限制,如果是这样的话,我建议您找一份新工作)。确定您不需要私有函数要容易得多,因为只有您当前正在处理的类才能调用此函数。如果您的代码库具有较小的类并且是松散耦合的,则此方法更容易。如果您的代码库没有小类或耦合非常紧密,我建议先清理这些类。
下一步是标记所有剩余的公共函数,并制作一个调用图来弄清楚类之间的关系。从这棵树中,试着找出树枝的哪一部分看起来可以修剪。
这种方法的优点是你可以在每个模块的基础上做它,所以当你的代码库损坏时,很容易保持通过你的单元测试,而不会有很长一段时间。
https://stackoverflow.com/questions/4813947
复制相似问题