在大型C++遗留应用程序中查找"死代码"

gud*_*hor 54 c++ legacy visual-c++

我目前正在开发一个大型和旧的C++应用程序,在我之前有许多开发人员.项目,类和函数中有很多"死代码",任何人都不会使用它们.

有哪些工具可用于C++分析大型代码库以检测和重构死代码?注意:我不是在谈论像gcov这样的测试覆盖率工具.

你如何在项目中找到死代码?

Ala*_*son 28

您将需要使用静态分析工具

我遇到的主要问题是,你必须要小心,任何库都不会从你无法控制/拥有的地方使用.如果从通过引用项目中的库来使用的类中删除某个函数,则可能会破坏您不知道使用该代码的内容.


小智 11

您可以使用Cppcheck来实现此目的:

$ cppcheck --enable=unusedFunction .
Checking 2380153.c...
1/2 files checked 0% done
Checking main.c...
2/2 files checked 0% done
[2380153.c:1]: (style) The function '2380153' is never used.
Run Code Online (Sandbox Code Playgroud)

  • 请不要对多个问题发布相同的答案。如果相同的信息确实回答了两个问题,则应关闭一个问题(通常是较新的问题),作为另一个问题的重复。您可以通过[投票关闭它作为重复项](http://stackoverflow.com/help/privileges/close-questions)来表明这一点,或者,如果您没有足够的声誉,可以[举起旗帜]( http://stackoverflow.com/help/privileges/flag-posts)表示它是重复的。否则,请确保为*这个*问题量身定制答案,而不仅仅是在多个地方粘贴相同的答案。 (3认同)