2010-09-27 15 views
5

Sto cercando un'utility a riga di comando su * nix, in grado di eseguire il dump dei nomi di tutte le funzioni, classi ecc definite in un file (C/C++/Java)strumento linux per elencare tutte le funzioni in un file sorgente?

+0

Che tipo di file, quale lingua intendi con il file elf rispettato? – Gadolin

+0

In quale lingua è il file sorgente? –

+0

Per java scrivere un codice basato sulla riflessione per farlo. Si prega di verificare se C++ filt fa qualcosa di utile per voi - http://sourceware.org/binutils/docs-2.16/binutils/c_002b_002bfilt.html – Jayan

risposta

7

ctags può dare che (e molto Di Più). E 'incluso nella maggior parte delle distribuzioni Linux ...
http://ctags.sourceforge.net/whatis.html

+0

so di ctags, ma genera il suo file di tag, che quindi è necessario da importare in un editor, ad es vim. Stavo chiedendo una semplice utility, che stampi solo i nomi delle funzioni su console, se ctags lo fa non sono sicuro che sia – Anonymous

+1

quindi vuoi 'ctags -x', che stampa un sommario leggibile di cose. – SingleNegationElimination

+0

Anche 'ctags -f -' stampa l'output su stdout e non su un file di tag. Puoi quindi usare 'awk' o qualcosa di simile ... –

0

Non è chiaro quale lingua si fa riferimento a: se:

  • rispettate file di elf allora hai utilità readelf condizione che avete compilato il file con il debug informazioni "-g"
+0

Questo non funzionerà per C++, a causa del nome di manomissione ... –

+1

@Gilad Naor - Ma puoi usare C++ filt per demangle –

0

Non sono sicuro se sarebbe utile per il vostro scopo preciso, ma dare un'occhiata a GCC-XML

0

Si potrebbe anche voler dare un'occhiata a cscope che è simile a ctags suggerite nella risposta accettata. Crea il proprio database dei simboli. Fornisce un'interfaccia piacevole per te, consentendo la ricerca di un determinato simbolo/inclusione/file/dichiarazione all'interno del tuo progetto.

Problemi correlati