Определяет ли Klocworks никогда не называется функциями?
Вопрос
Мой код - это смесь разных битов и кусочков от более старого кода.
Я хотел бы стереть все никогда не использованные функции, чтобы держать код простой.
Klocworks инструмент? Как мне это сделать?
Спасибо,
Моше.
Решение
Вы могли бы использовать -p
или -pg
Варианты к gcc
Для того, чтобы код был добавлен в пролог и эпилог каждой функции, так что база данных профиля записана при выполнении программы. Инструмент prof
используется для анализа вывода из -p
а также gprof
для -pg
. Отказ Эти инструменты создают отчеты, показывающие, какие функции были использованы, сколько звонков, и сколько времени было проведено в каждом. Неиспользуемые функции будут отсутствовать в базе данных профиля.
Вы также можете использовать gcov
Чтобы получить отчет о том, какие строки кода на самом деле были выполнены. Функции никогда не вызывали, будут выполнены 0 раз ....
Другие советы
Klocworks найдет неиспользованную функцию / методы. Существует специальный пакет Checker, который вы можете скачать на 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 предложил вы можете посмотреть на опции компилятора.