LINUX.ORG.RU

Навигация по коду на C


1

3

Это развитие прошлой темы про ctags и проч.
Конечно, одной возможности поиска объявлений функций не достаточно для удобной навигации по незнакомому исходнику. Очень сподручно было бы иметь возможность искать места, в которых происходит присваивание (и любое другое изменение значения) и чтение конкретной переменной (Х).

Также было бы удобно иметь возможность получать ответы на такие вопросы:

1) в каких файлах и (!) функциях используется конкретная переменная Х;

2) используется ли Х в ф-циях, являющихся вызываемыми по отношению к данной (с любой степенью вложенности, т.е., если Х используется в ф-ции Fx, и Fx также вызывает мн-во фций G = {G1, G2, ... GN} необходимо выяснить, используется ли X в каждой Gi и в каждой ф-ции, вызываемой Gi и так далее вглубь дерева вызовов).

Существуют ли такие инструменты?

★★★★

а какие тулзы вообще такое умеют?

Vernat ★★ ()

Посмотрите в сторону cscope.

andreyu ★★★★★ ()
Ответ на: комментарий от Vernat

По-моему, вполне актуальный функционал для IDE.

seiken ★★★★ ()

В CDT есть 1, но нет 2.

Пиши свой анализатор :) Недавно видел в сети gcc-плагин для анализа кода - в gcc встраивается интерпретатор Python, и ему передается внутренне представление программы. Еще есть pycparser.

tailgunner ★★★★★ ()

посмотрите http://sourcenav.berlios.de/ он конечно немолод и как редактор он г-но, но навигация по коду - одна из лучших.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от tailgunner

> В CDT есть 1, но нет 2.

Для 2. неплохо работает Call Hierarchy, можно прям для переменной вызывать и смотреть в каких функциях переменная используется, и дальше всю иерархию вызовов таких функций. В этом дереве вызовов искать свою исходную функцию. Если бы еще фильтр для этого дерева был в Call Hierarchy View, то совсем удобно было бы.

kamre ★★★ ()

cscope + vim

пункт 2 не будет, но наверно можно наскриптовать.

amaora ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.