Найти никогда не вызываемые функции - PullRequest
5 голосов
/ 19 ноября 2010

Я делаю некоторый рефакторинг в проекте, использующем Qt с Visual Studio 2008, и я хотел бы знать, есть ли простой способ найти функции и методы, которые никогда не вызывают?

Ответы [ 4 ]

9 голосов
/ 19 ноября 2010

Вы можете попробовать инструмент статического анализа кода, например http://en.wikipedia.org/wiki/Cppcheck

4 голосов
/ 19 ноября 2010

A -Wall в ваших опциях компиляции должен это делать.(Или -Wunused-функция).Проверьте параметры компилятора в VS.

2 голосов
/ 19 ноября 2010

Я всегда предпочитал "grep", но это может быть немного "старой школой".

Visual Studio создаст для вас график вызовов, который будет полезен, но не на 100% надежен.

Другой вариант - закомментировать функцию и посмотреть, будет ли проект по-прежнему связываться.

1 голос
/ 19 ноября 2010

Есть ли шанс собрать этот проект Qt с помощью gcc?Если это так, вы можете использовать gcov.Он сообщает вам все методы, которые были вызваны во время выполнения.Затем вы можете использовать ctags для создания списка всех доступных методов.Из этих двух наборов вы можете найти их, не вызывая.

Конечно, приложение должно работать достаточно долго под gcov для доставки более или менее полного списка используемых функций.это более простой способ использования компоновщика или переключателя компилятора.: -))

...