Посоветуйте IDE для анализа запутанного кода на C++
Посоветуйте, пожалуйста, IDE для разбора запутанного кода крупного (несколько сотен файлов, каждый на пару тысяч строк) проекта на C++. Компиляция и дебаг, в принципе, не возможны т.к. дана только часть всех исходников. Нужны следующие фичи (из коробки или плагинами, но с минимальной допилкой):
- Самое очевидное - возможность сворачивать/скрывать произвольные участки кода.
- Быстрый отчёт по выбранным переменной/полю объекта - где и в каком контексте данная переменная используется и в каких местах кода выставляется её значение
- То же самое для функций - где и в каком контексте используется выбранная функция
- Возможность задавать свои имена переменным, функциям, классам, не изменяя исходники (оригинальное имя всегда должно быть под рукой) и не смещая нумерацию строк.
- Возможность помечать тегами, цветами, а так же давать описание участкам кода, не изменяя исходники и не смещая нумерацию строк - наличие отдельного оглавления, где можно просмотреть и сгруппировать все теги и ссылки на подобные описания.
- Работа с несколькими версиями кода, отслеживание изменений и сдвига нумерации строк меду ними.
- Сохранение состояния всего этого счастья между вызовами IDE, в отдельный файл проекта.
- Большую часть времени IDE не должна потреблять более 2 из 4 доступных гигабайтов памяти.
Пока что, временами, использую SciTools Understand, но она не умеет или умеет неочевидным путём половины из описанных фич. В ней можно просмотреть список для каждой функции - где она объявлена и где используется, и для каждой переменной - где выставляется, а где используется её значение, но, например, функции и поля с общими именами, типа GetItem() или value являются для неё одной функцией или полем и не важно, что в коде пара десятков классов где функции и поля имеют такое же имя.
Заранее извиняюсь если описал очевидные или фантастичные вещи - раньше в полноценной IDE у меня потребности не возникало, хватало текстового редактора с подсветкой кода, да и сейчас хватает, но таким темпами я в дурку отъеду.