我有一个在Visual Studio 2008下编译的大型遗留C++项目.我知道有相当数量的"死"代码无法在任何地方访问 - 未调用的方法,未使用的整个类.
我正在寻找一种可以通过静态分析识别出来的工具.
这个问题:传统C/C++项目中的死代码检测建议使用代码覆盖工具.这不是一个选项,因为测试覆盖率不够高.
它还提到了一个无法访问的代码.gcc的选项.我想要一些类似于Visual Studio的东西.我们已经使用链接器的/ OPT:REF选项来删除冗余代码,但是这并没有报告死代码的有用级别(当与/ VERBOSE一起使用时,有超过100,000行,包括来自库的很多行).
有没有更好的选项适合Visual Studio项目?
我知道Gimpel的Lint产品(PC-Lint和Flexelint)将识别无法访问的代码和未使用/未引用的模块.
它们都属于静态分析工具.
我与Gimpel没有任何关系,只是一个满意的长期客户.
您需要QA-C++(http://www.programmingresearch.com/QACPP_MAIN.html)的内容,同时请参阅http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis了解类似产品.
您正在寻找一种可检测无法访问代码的静态代码分析工具; 许多编码指南(例如MISRA-C++,如果我没有记错的话)要求不存在无法访问的代码.专门用于执行此类指南的分析工具将是您最好的选择.
而且您也希望能够找到该工具的其他用途.