私のコードは、古いコードのさまざまな部分が混ざり合っています。
コードを単純にするために、使用したことのない関数をすべて消去したいと思います。
Klocworkはツールですか?どうすればいいのですか?
ありがとう、
モシェ。
-p
または-pg
オプションを使用してgcc
、すべての関数のプロローグとエピローグにコードを追加し、プログラムの実行時にプロファイルデータベースが書き込まれるようにすることができます。このツールは、-からの出力と-prof
の出力を分析するために使用されます。これらのツールは、使用された関数、呼び出しの数、およびそれぞれに費やされた時間を示すレポートを生成します。未使用の機能はプロファイルデータベースから欠落します。-p
gprof
pg
gcov
また、実際に実行されたコード行のレポートを取得するために使用することもできます。呼び出されたことのない関数は0回実行されます。
Klocwork は未使用の関数/メソッドを見つけます。my.klocwork.com (アカウントをお持ちの場合) からダウンロードできる特別なチェッカー パックがあり、これらの特別なチェッカーが提供されます。
私は Klocwork に詳しくありませんが、呼び出されていないほとんどの関数を検出するgcc
警告オプションがあります。の一部です。-Wunused-function
-Wunused-function
-Wall
Klockwork は、呼び出されていない関数を検出しません。静的分析のみに使用されます。
次のように確認できます。
foo()
{
char *a;
a = malloc(100);
}
bar()
{
char a[100];
}
main()
{
bar();
}
これはおそらく、実際には呼び出されていない関数 foo のリークを報告します。ただし、schot が示唆しているように、コンパイラ オプションを調べることができます。