5

ELF にコンパイルされる C プロジェクトに未使用の関数があるかどうかを確認し、それらを見つける方法を探しています。これは、コード内で宣言されているが呼び出されていない関数です。

解決策は次のいずれかです。

  • .c ファイルを調べて分析するユーティリティ
  • コンパイル済みの ELF ファイルを調べて、シンボルを静的に分析するユーティリティ
  • gcc で未使用の関数について警告する方法 (および -Wunused-functions はグローバル関数に対しては警告しません)

ソリューションは次のいずれかにすることはできません。

  • どの関数が削除されたかを知らずに、コンパイル時に未使用の関数を削除する
  • 実行時に ELF ファイルを分析します。これは、実行ごとにすべての関数が呼び出されるわけではないためですgprof(一部の関数は呼び出されるまでに数日かかりますが、コード フローでは、それらが最終的に呼び出されることがわかります)。
  • 未使用の関数ではなく、関数内のデッドコード (つまり、関数から戻った後のコード) を検出するユーティリティ

ありがとうございました

4

2 に答える 2