我正在寻找一种方法来检查编译为 ELF 的 C 项目是否具有未使用的函数并找到它们。那是在我的代码中已声明但未在任何地方调用的函数。
解决方案可以是以下之一:
- 一个通过我的 .c 文件,分析它们的实用程序
- 一个通过我编译的 ELF 文件的实用程序,它有符号,静态分析它
- 一种警告 gcc 中未使用函数的方法(并且 -Wunused-functions 不会对全局函数执行此操作)
解决方案不能是以下之一:
- 在编译时删除未使用的函数,而不知道删除了哪些函数
- 在运行时分析 ELF 文件,因为并非每个函数都会在每次运行中被调用,例如
gprof
(有些函数需要几天才能被调用,但在代码流中你可以看到它们最终被调用) - 一种实用程序,用于发现函数内部的死代码(即从函数返回后的代码),而不是未使用的函数
谢谢