2010-09-27 2 views
5

Ищу утилиту командной строки на * Nix, что может сбросить имена всех функций, классов и т.д., определенных в файле (C/C++/Java)linux tool для отображения всех функций в исходном файле?

+0

Какой файл, какой язык, вы имеете в виду выполненный файл эльфа? – Gadolin

+0

На каком языке находится исходный файл? –

+0

Для java напишите код на основе отражения, чтобы сделать это. Пожалуйста, проверьте, действительно ли C++ filt делает что-то полезное для вас - http://sourceware.org/binutils/docs-2.16/binutils/c_002b_002bfilt.html – Jayan

ответ

7

ctags может дать вам, что (и многое Больше). Он входит в состав большинства дистрибутивов Linux ...
http://ctags.sourceforge.net/whatis.html

+0

Я знаю о ctags, но он генерирует файл тегов, который тогда необходим для импорта в редактор, например ВИМ. Я просил простую утилиту, которая просто печатает имена функций на консоли, если ctags делает это, я не уверен – Anonymous

+1

, тогда вы хотите 'ctags -x', который печатает человекообразную сводку вещей. – SingleNegationElimination

+0

Также 'ctags -f -' выводит вывод на stdout, а не файл тега. Затем вы можете использовать 'awk' или что-то подобное ... –

0

Не ясно, какой язык вы ссылаетесь: если:

  • выполнил эльфа файл, то у вас есть readelf утилиту, предусматривающую, что вы собрали файл с отладочной информация «-g»
+0

Это не сработает для C++ из-за управления именами ... –

+1

@ Gilad Naor - Но вы можете использовать C++ filter, чтобы развернуть их –

0

Не уверен, если это будет полезно для точной цели, но взгляните на GCC-XML

0

Вы также можете взглянуть на cscope, который похож на Ctags предложенных в принятом ответе. Он создает свою собственную базу данных символов. Он обеспечивает приятный интерфейс для вас, позволяя осуществлять поиск данного символа/включения/файла/декларации в рамках вашего проекта.

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