gpt4 book ai didi

c++ - 遗留 C/C++ 项目中的死代码检测

转载 作者:IT老高 更新时间:2023-10-28 12:11:09 29 4
gpt4 key购买 nike

您将如何在 C/C++ 代码中进行死代码检测?我有一个相当大的代码库可供使用,至少 10-15% 是死代码。是否有任何基于 Unix 的工具来识别这些区域?有些代码仍然使用大量的预处理器,自动化进程可以处理吗?

最佳答案

您可以为此使用代码覆盖率分析工具并查找代码中未使用的位置。

gcc 工具链的一个流行工具是 gcov,以及图形前端 lcov (http://ltp.sourceforge.net/coverage/lcov.php)。

如果您使用 gcc,则可以使用 gcov 支持进行编译,该支持由“--coverage”标志启用。接下来,运行您的应用程序或使用此启用 gcov 的构建运行您的测试套件。

基本上 gcc 会在编译期间发出一些额外的文件,并且应用程序也会在运行时发出一些覆盖率数据。您必须收集所有这些(.gcdo 和 .gcda 文件)。在这里我不会详细介绍,但您可能需要设置两个环境变量以理智的方式收集覆盖率数据:GCOV_PREFIX 和 GCOV_PREFIX_STRIP...

运行后,您可以将所有覆盖率数据放在一起,并通过 lcov 工具套件运行。合并来自不同测试运行的所有覆盖文件也是可能的,尽管有点涉及。

无论如何,您最终会得到一组漂亮的网页,其中显示了一些覆盖信息,指出没有覆盖的代码片段,因此没有被使用。

当然,您需要仔细检查代码部分是否在任何情况下都没有使用,这在很大程度上取决于您的测试对代码库的运行情况。但至少,这将给出一个关于可能的死代码候选者的想法......

关于c++ - 遗留 C/C++ 项目中的死代码检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/229069/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com