Klocwork是否检测到从未调用的函数?

时间:2010-08-10 07:20:45

标签: c klocwork

我的代码混合了旧代码的不同部分。

我想删除所有从未使用过的函数,以保持代码简单。

Klocwork是工具吗?我该怎么做?

谢谢,

摩西。

4 个答案:

答案 0 :(得分:2)

您可以使用-p-pg选项gcc将代码添加到每个函数的序言和结尾中,以便在程序执行时写入配置文件数据库。工具prof用于分析-pgprof的输出 - pg。这些工具生成报告,显示使用的功能,呼叫次数以及每次呼叫花费的时间。配置文件数据库中将缺少未使用的功能。

您还可以使用gcov来获取实际执行的代码行的报告。从未调用的函数将被执行0次....

答案 1 :(得分:2)

Klocwork将找到未使用的函数/方法。您可以在my.klocwork.com上下载一个特殊的检查包(如果您有一个帐户),它将为您提供这些特殊的检查器。

答案 2 :(得分:1)

我不熟悉Klocwork,但gcc有警告选项-Wunused-function,可以检测大多数未调用的函数。 -Wunused-function-Wall的一部分。

答案 3 :(得分:0)

Klockwork没有检测到未调用的函数。它仅用于静态分析。

您可以这样检查:

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

main()
{
   bar();
}

这可能会报告函数foo中的泄漏,这实际上是未调用的。但是,正如schot建议您可以查看编译器选项。