2008-12-22 9 views
0

Je suis à la recherche d'un outil qui, étant donné un peu de C, vous dira quels symboles (types, définitions précompilateur, fonctions, etc.) sont utilisés à partir d'un fichier d'en-tête donné. Je fais un portage d'un gros pilote de Solaris vers Windows et je commence à comprendre d'où viennent les choses, ce qui serait d'une grande aide. Des idées? Edit: Pas une exigence absolue, mais les outils qui fonctionnent sur Windows serait un plus.outil pour déterminer l'origine du symbole dans C

Edit # 2: Pour clarifier ce que je suis en train de faire, j'ai une base de code que je suis en train de port, qui apporte un grand nombre d'en-têtes. Ce que j'aimerais, c'est un outil qui, vu foo.c, me dira quels symboles il utilise de bar.h.

+0

À moins que le pilote ne compile déjà sous Windows, vous avez probablement besoin d'un outil Solaris ... les fichiers système requis/les dépendances externes peuvent ne pas exister sous Windows. –

Répondre

1

J'aime KScope, qui fait face à de très grands projets.

KScope http://img110.imageshack.us/img110/4605/99101zd3.png

+0

Hmm, ça a l'air très bien. On dirait que ce sera un peu de travail pour aller sur les fenêtres, malheureusement, malheureusement. Je devrais ajouter ce qualificatif à la question. Cela dit, cela peut valoir la peine de le faire fonctionner. –

1

-je utiliser sur Linux et Windows: gvim + ctags + cscope.
environnement Même fonctionnera sur solaris aussi bien, mais cela est de la force bien sûr, vous utiliser vim comme rédacteur en chef, je suis assez sûr que emacs peut travailler avec les ctags et cscope ainsi.
Vous voudrez peut-être essayer de vim, c'est un peu difficile au début, mais bientôt vous ne pouvez pas travailler autrement. L'éditeur le plus efficace (IMHO).

replay Commentaire:

Regardez dans le cscope man:

...

fonctions Find appelées par cette fonction:
fonctions Find appel de cette fonction:

...

Je pense que c'est exactement ce que vous cherchez ... S'il vous plaît clarifier sinon.

replay Commentaire 2:

ok, maintenant je vous comprends. Les outils que j'ai suggérés peuvent vous aider à comprendre le flux de code, et trouver là un certain symbole est défini, mais pas ce que vous cherchez.

pas ce que vous demander, mais puisque nous parlons j'ai une certaine expérience avec le portage et les pilotes (vous pouvez ignorer)

Il semble que le compilateur est assez bon pour votre tâche. Vous commencez juste avec le fichier original et laissez le compilateur trouver ce qui manque, il y aura beaucoup de stubs vides et vous obtiendrez du code compilé.

Au moins pour commencer, je vous suggère de créer beaucoup de talons et la modification du code d'origine le moins possible, plus tard une fois que vous le faire fonctionner, vous pouvez optimiser.

Il est peut-être plus complexe en fonction du type de pilote vous êtes PORTAGE (je suppose pilote du noyau), les sous-systèmes Windows et Solaris ne sont pas si semblables. Nous avons un chauffeur qui travaille à la fois sur Solaris et Windows, mais il a été conçu pour être multi plate-forme dès le début.

+0

J'avais regardé cscope, mais je ne voyais aucun moyen de voir quels symboles d'un fichier étaient utilisés dans un autre. Je vais regarder plus fort, merci. –

+0

J'ai parcouru un peu leur documentation, mais je ne vois pas comment voir un code donné à partir d'un en-tête spécifié. Y a-t-il un moyen de forer? Merci –

+0

toujours noter que je comprends ce que vous essayez d'atteindre c'est peut-être utile si vous donnez un exemple plus détaillé dans votre question elle-même (commentaires sont à court) – Ilya

0

Essayez DoxyGen, il peut produire des graphiques et/ou HTML et hautement personnalisable

+0

si je ne me trompe pas doxygen ne fonctionne pas directement sur le code, si le code n'a pas été écrit avec la documentation doxygen, il ne produira rien. – Ilya

+0

Vous êtes. Il peut produire des graphiques basés sur un code seulement. –

+0

Bon à savoir, merci – Ilya

0

emacs et etags.

Et je tire parti de make pour lancer l'indexation de balises pour moi --- de cette façon, je peux indexer un grand projet avec une commande. J'ai pensé à la construction d'un index maître et des modules séparés ees, mais pas eu l'occasion de mettre en œuvre ce encore ...


@Ilya: Est-ce pistolets à l'aube acceptable?

Questions connexes