Я анализирую некоторые крупные проекты на С ++. Единственная функциональность, в которой я действительно нуждаюсь, - это поиск вызовов функций.Анализ кода на C++ - CSCope
Для этого я использую cscope
прямо сейчас, но я обнаружил одну большую проблему - кажется, что cscope
не может найти методы, например. object.function()
.
Итак, можно ли как-то изменить настройки cscope
? Или, если невозможно провести синтаксический анализ C++ с помощью cscope
, можете ли вы порекомендовать другой синтаксический анализатор, который «лучше оснащен»?
Я использую cscope
как можно проще, например:
cscope -k -L3importantFunc path_to_some_file
Я не создаю базу данных отдельно, я думаю, что это должно быть достаточно таким образом, для одного конкретного файла.
Я уже пробовал Clang, но это было не намного лучше, так как это не возможно искать функции, вложенные в условно-компиляциях блоков.
https://github.com/Andersbakken/rtags –
Как дикое предположение, может проблема в том, что Cscope для разбора языка C, а не C++? –
Если вы запустили препроцессор над исходным кодом перед его синтаксическим анализом, у вас нет предустановленных условных блоков, о которых нужно беспокоиться. Вы хотите найти вызовы функций внутри отключенных условных блоков pp? Что делать, если условный блок обернут вокруг строки заголовка функции? Что делать, если оно обернуто вокруг частей списка аргументов? –