2010-09-27 15 views
5

szukam narzędzie wiersza polecenia na * nix, że można zrzucić nazwy wszystkich funkcji, klas itp zdefiniowanych w pliku (C/C++/Java)narzędzie linux, aby wyświetlić listę wszystkich funkcji w pliku źródłowym?

+0

Jaki rodzaj pliku, jaki język, masz na myśli, że spełniasz plik elfa? – Gadolin

+0

W jakim języku znajduje się plik źródłowy? –

+0

Dla java napisz kod oparty na refleksji, aby to zrobić. Sprawdź, czy C++ filt coś Ci się przyda - http://sourceware.org/binutils/docs-2.16/binutils/c_002b_002bfilt.html – Jayan

Odpowiedz

7

ctags może dać Ci, że (i znacznie jeszcze). Jest on zawarty w większości dystrybucji Linuksa ...
http://ctags.sourceforge.net/whatis.html

+0

wiem o ctags, ale generuje plik tagów, który jest wtedy potrzebny do zaimportowania do edytora np krzepkość. Prosiłem o proste narzędzie, które po prostu wypisuje nazwy funkcji na konsoli, jeśli ctags robi to, nie jestem pewien – Anonymous

+1

, wtedy potrzebujesz 'ctags -x', który wypisze ludzkie czytelne podsumowanie rzeczy. – SingleNegationElimination

+0

Również 'ctags -f -' drukuje dane wyjściowe na standardowe wyjście, a nie na plik znaczników. Możesz wtedy użyć 'awk' lub czegoś podobnego ... –

0

Nie jest jasne, w jakim języku patrz: jeżeli:

  • spełnione elf plik następnie trzeba readelf narzędzie zapewniające, że skompilowany plik z debugowania informacje „-g”
+0

To nie zadziała dla C++, ze względu na wymuszanie nazw ... –

+1

@Gilad Naor - Ale możesz użyć C++ filt do ich demontażu –

0

Nie jestem pewien, czy byłoby użyteczne dla dokładnego celu, ale przyjrzeć GCC-XML

0

Warto również spojrzeć na cscope który jest podobny do ctags sugerowanych w przyjętym odpowiedź. Tworzy własną bazę danych symboli. Zapewnia przyjemny interfejs dla ciebie, umożliwiając wyszukanie danego symbolu/włączenia/pliku/deklaracji w twoim projekcie.