2010-09-27 3 views
5

Je suis à la recherche d'une ligne de commande utilitaire sur * nix, qui peuvent vider les noms de toutes les fonctions, classes, etc. définies dans un fichier (C/C++/Java)outil linux pour lister toutes les fonctions dans un fichier source?

+0

Quel type de fichier, quelle langue, voulez-vous dire fichier elf respecté? – Gadolin

+0

Dans quelle langue se trouve le fichier source? –

+0

Pour Java écrire un code basé sur la réflexion pour le faire. S'il vous plaît vérifier si C++ filt fait quelque chose d'utile pour vous - http://sourceware.org/binutils/docs-2.16/binutils/c_002b_002bfilt.html – Jayan

Répondre

7

ctags peut vous donner que (et bien plus). Il est inclus dans la plupart des distributions Linux ...
http://ctags.sourceforge.net/whatis.html

+0

je sais à propos de ctags, mais il génère son fichier de balises, qui est alors nécessaire à importer dans un éditeur vim. Je demandais un utilitaire simple, qui imprime simplement les noms des fonctions sur la console, si ctags fait que je ne suis pas sûr – Anonymous

+1

alors vous voulez 'ctags -x', qui imprime un résumé lisible par l'homme de choses. – SingleNegationElimination

+0

De même 'ctags -f -' affiche la sortie sur stdout, et non un fichier de variable. Vous pouvez alors utiliser 'awk' ou quelque chose de similaire ... –

0

On ne sait pas quelle langue vous référer à: si:

  • fichier elf alors respecté vous avez utilitaire readelf à condition que vous fichier compilé avec DEBUG informations « -g »
+0

Cela ne fonctionnera pas pour C++, en raison de noms-mangling ... –

+1

@Gilad Naor - Mais vous pouvez ensuite utiliser C++ filt pour les démembrer –

0

Je ne sais pas si ce serait utile pour votre but précis, mais jetez un oeil à GCC-XML

0

Vous pouvez également jeter un oeil à cscope qui est similaire à ctags proposées dans la réponse acceptée. Il crée sa propre base de données de symboles. Il fournit une interface agréable pour vous, permettant la recherche d'un symbole/inclusion/fichier/déclaration donné dans votre projet.

Questions connexes