Обнаруживает ли Klocwork никогда не вызываемые функции? - PullRequest
1 голос
/ 10 августа 2010

мой код представляет собой смесь различных частей старого кода.

Я хотел бы стереть все никогда не используемые функции, чтобы сохранить код простым.

Является ли Klocwork инструментом? Как мне это сделать?

Спасибо,

Моше.

Ответы [ 4 ]

2 голосов
/ 25 августа 2010

Klocwork найдет неиспользуемые функции / методы. На my.klocwork.com можно загрузить специальный пакет для проверки (если у вас есть учетная запись), который даст вам эти специальные средства проверки.

2 голосов
/ 10 августа 2010

Вы можете использовать опции -p или -pg для gcc, чтобы добавить код к прологу и эпилогу каждой функции, чтобы база данных профиля была записана при выполнении программы.Инструмент prof используется для анализа выходных данных -p и gprof для - pg.Эти инструменты создают отчеты, показывающие, какие функции были использованы, сколько вызовов и сколько времени было потрачено на каждую.Неиспользуемые функции будут отсутствовать в базе данных профиля.

Вы также можете использовать gcov, чтобы получить отчет о том, какие строки кода были фактически выполнены.Функции, которые никогда не вызывались, будут выполнены 0 раз ....

1 голос
/ 10 августа 2010

Я не знаком с Klocwork, но gcc имеет опцию предупреждения -Wunused-function, которая обнаруживает большинство неиспользуемых функций.-Wunused-function является частью -Wall.

0 голосов
/ 10 августа 2010

Klockwork не обнаруживает невостребованные функции.Он используется только для статического анализа.

Вы можете проверить это так:

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

main()
{
   bar();
}

Это, вероятно, сообщит об утечке в функции foo, которая фактически не вызывается.Однако, как предложил schot, вы можете посмотреть опции компилятора.

...