spe*_*ler 5 c gcc code-analysis utility dead-code
我正在寻找一种方法来检查我的C项目,编译成ELF,是否有未使用的函数,并找到它们.这是声明的函数,但在我的代码中没有被调用.
解决方案可以是以下之一:
解决方案不能是以下之一:
gprof(有些函数需要几天才能调用它们,但在代码流中你可以看到它们最终被调用)谢谢
如果您需要精确、自动化或完善的东西,则需要编译器和构建系统以某种方式合作并为您完成。
如果您不需要精确的结果或特别自动化或完善的结果,那么这里有一个非常粗略的近似值:它将找到在所有 .c 文件中仅出现一次的每个单词。
find . -name \*.c -exec cat {} \; \
| tr -s '[[:space:];:,?!.|()-"<>=]' '\n' \
| sort \
| uniq -u
Run Code Online (Sandbox Code Playgroud)
当然,这可能会以一百万种方式失败:预处理器技巧、注释重复函数名称、与注释中使用的常用单词名称相同的函数等。