Как отфильтровать нетронутый код в C ++ - PullRequest
2 голосов
/ 22 сентября 2010

Для разбора / понимания огромной базы шаблонных кодов было бы очень полезно иметь инструмент, который сообщает мне, какой класс / код перешел в финальный двоичный файл.

Например, если в коде есть два класса A и B, но я заканчиваю только созданием экземпляра только A, тогда я бы хотел узнать, как отфильтровать B. Существуют ли какие-либо инструменты для достижения того же с помощью кода на основе шаблонов.

Ответы [ 4 ]

1 голос
/ 22 сентября 2010

Используйте некоторые инструменты профилирования / покрытия кода.Некоторые версии MS Visual Studio поставляются с профилировщиком.Тогда есть несколько коммерческих профилировщиков / инструментов покрытия, таких как Intel VTune.На * nix с GCC есть gcov.

1 голос
/ 22 сентября 2010

запустить doxygen для генерации реферального графа и посмотреть, на какой класс не ссылаются

0 голосов
/ 22 сентября 2010

См. мой ответ на вопрос, который я недавно задал на SO.

Идея состоит в том, чтобы скомпилировать ваш код после включения опции компилятора "showInclude", а затем обработать вывод для извлечениянеобходимая информация (например, вручную или автоматически, например, с использованием сценария Python).

Благодаря этому я смог извлечь файлы с точным кодом, которые используются для создания нашего программного обеспечения.

0 голосов
/ 22 сентября 2010

Вы можете попробовать использовать нм :

Утилита nm должна отображать символ информация, появляющаяся в объекте файл, исполняемый файл или объект-файл

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

В качестве другого подхода, нельзя ли начать просматривать / читать / понимать код вызывающего абонента, чтобы сначала записать используемые / включенные классы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...