2014-12-11 2 views
1

Я анализирую существующий проект кода C, который много использует глобальные переменные (ключевое слово extern). Моя проблема заключается в том, что ключевое слово используется не только в .h файлах переменной, но и в других файлах .c, где есть необходимость доступа к переменной.Показать зависимости глобальных переменных в коде C

Есть ли инструмент, который позволяет мне выбирать переменную и видеть все обращения по проекту (выбор .c файлов)?

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

+1

'grep', или некоторая комбинация' find' и 'grep' должна работать. –

+3

cscope - полезный инструмент. –

+0

У IDE также есть функция «найти использование», которая работает ... для всех ошибок Eclipse, это одна из вещей, которые она делает довольно хорошо. (Конечно, попасть в IDE, вероятно, невозможно на данный момент). – IdeaHat

ответ

0

В отличие от настоящих ученых-вычислителей и фанатиков командной строки .. Я обманываю GUI ... Если вы используете IDE, такие как Xcode, вы должны нажать на var, нажав cmd или Ctrl, это приведет вас к объявление символа. Большинство IDE позволяют выполнять поиск по проекту (т. Е. Все файлы), вот как я нахожу, где иногда используется var. Doxygen - отличный инструмент, если ваш код хорошо документирован. Запустите его рекурсивно в своем проекте dir и посмотрите на вывод html, который показывает вам все глобальные вары и перекрестные ссылки.

+0

Я также являюсь поклонником графических приложений, но это еще одно обсуждение. Я использую Eclipse, и я знаю об этой функции для поиска удалений и/или использования. Но это не удовлетворяет моим потребностям в этом случае. Я пытаюсь понять код (вид обратной инженерии), и я хочу получить обзор. Btw: Его не задокументировано :-( – Burner

+0

@ Burner да, я полностью понимаю вашу боль! Я был в той же ситуации два месяца назад .. пришлось взять на себя несколько больших проектов, написанных на C, все из которых плохо документированы. много поисков в этих исходных файлах, которые занимали много времени, и большая проблема для ленивого человека, подобного мне: P, но я рад, что сделал это, потому что мне лучше понять код и установить документы для Doxygen. выучили некоторые интересные трюки программирования. Определенно больший выигрыш в долгосрочной перспективе. – icdevppl

1

В Eclipse: rightlick переменного -> иерархии Открыть вызов

Это показывает все доступы этого переменный для всего проекта (за исключением деклараций)

Я буду держать глаза открытым для функции как это перечисление всех переменных модуля.

Смежные вопросы