Да, CDT может предоставить вам эту информацию.Чтобы использовать его программно, вам нужно сделать что-то вроде написания плагина CDT, создать проект Eclipse, содержащий ваши исходные файлы, проиндексировать проект и запустить на нем ваш плагин.
Ваш плагин может использовать такие API-интерфейсы, как IIndex.findMacros()
для поиска привязок макросов, соответствующих данному имени ( привязка - это представление CDT семантической сущности, такой как переменная, функция или макрос), затем IIndex.findReferences()
для поиска всех использований макроса.
Тип возвращаемого значения findReferences()
- это массив IIndexName
, который имеет методы для доступа к имени файла и номеру строки использования.