1

私のコードは、古いコードのさまざまな部分が混ざり合っています。

コードを単純にするために、使用したことのない関数をすべて消去したいと思います。

Klocworkはツールですか?どうすればいいのですか?

ありがとう、

モシェ。

4

4 に答える 4

2

-pまたは-pgオプションを使用してgcc、すべての関数のプロローグとエピローグにコードを追加し、プログラムの実行時にプロファイルデータベースが書き込まれるようにすることができます。このツールは、-からの出力と-profの出力を分析するために使用されます。これらのツールは、使用された関数、呼び出しの数、およびそれぞれに費やされた時間を示すレポートを生成します。未使用の機能はプロファイルデータベースから欠落します。-pgprofpg

gcovまた、実際に実行されたコード行のレポートを取得するために使用することもできます。呼び出されたことのない関数は0回実行されます。

于 2010-08-10T08:59:43.373 に答える
2

Klocwork は未使用の関数/メソッドを見つけます。my.klocwork.com (アカウントをお持ちの場合) からダウンロードできる特別なチェッカー パックがあり、これらの特別なチェッカーが提供されます。

于 2010-08-25T15:22:37.257 に答える
1

私は Klocwork に詳しくありませんが、呼び出されていないほとんどの関数を検出するgcc警告オプションがあります。の一部です。-Wunused-function-Wunused-function-Wall

于 2010-08-10T07:30:55.180 に答える
0

Klockwork は、呼び出されていない関数を検出しません。静的分析のみに使用されます。

次のように確認できます。

foo()
{
   char *a;
   a = malloc(100);
}
bar()
{
   char a[100];
}

main()
{
   bar();
}

これはおそらく、実際には呼び出されていない関数 foo のリークを報告します。ただし、schot が示唆しているように、コンパイラ オプションを調べることができます。

于 2010-08-10T08:08:51.543 に答える