Вы захотите что-то вроде C++ QA ( http://www.programmingresearch.com/QACPP_MAIN.html ), также видеть http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis для аналогичных продуктов.
Вы ищете статический инструмент анализа кода, который обнаруживает недостижимый код; много инструкций по кодированию (таких как MISRA-C++, если я не ошибаюсь) требуют, чтобы никакой недостижимый код не существовал. Аналитический инструмент, снабженный приводом конкретно для осуществления такой инструкции, был бы лучшим выбором.
И Вам понравится быть в состоянии найти другое использование для инструмента также.
Я не знаю Визуальный C и также рекомендовал - Wunreachable-код определенные инструменты покрытия. Как решение для Вашей ситуации я попробовал бы следующее:
Другой подход мог быть некоторым генерирующимся инструментом графа вызовов (например, doxygen).
Запишите сценарий, который случайным образом удаляет функцию (из исходного кода) и перекомпилировал все с нуля. Если это все еще компилирует - что функция была мертвым кодом.
Один подход, который работает на меня - с Дельфи - должен позволить отладить и запустить Вашу программу под отладчиком.
, Когда программа Дельфи запущена под отладчиком, шоу IDE в поле, какие строки кода могут быть установлены как точки останова. Код, который действительно мертв - т.е. был разделен компоновщиком/компилятором, очевиден, поскольку точки останова не могут быть установлены там.
Некоторые дополнительные примечания, поскольку комментаторы, кажется, неправильно понимают это:
a: Вы не должны пытаться установить точку останова на каждой строке. Просто откройте исходный файл в IDE, и быстро просмотрите его путем прокрутки. Мертвый код легко определяется.
b: Это не 'проверка' покрытия кода. Вы не должны запускать приложение, чтобы видеть, достигает ли оно строк.
c: я не достаточно знакомый VS2008, так не может сказать, будет ли это предложение работать.
Я знаю, что продукты Gimpel Lint ( PC-Lint и Flexelint ) будут определять недоступный код и неиспользуемые / неиспользуемые модули.
Они оба попадают в категорию инструментов статического анализа.
У меня нет связи с Gimpel, я просто довольный постоянный клиент.