Forum Linux.débutant Trouver ou est implémtée une fonction dans un noyau?

Posté par .
Tags : aucun
0
6
avr.
2006
Salut, je voudrai savoir comment trouver l'endroit ou est implémtée une fonction dans le noyau Linux... par exemple, la fonction gettimeofday(), ,comment savoir dans quel fichier elle est implémentée... ça c'est ma première question, deuxièmement, est ce qu'il n'existerait pas un truc (logiciel ou autre) pour à partir d'une fonction, voir l'ensemble des fonctions auxquels elle fait appelle? car en gros, on m'a demandé de regarder le noyeau Linux et pour certaines fonctions, de voir l'ensemble des fonctions qu'elle pouvait appeler donc plutôt que de le faire à la main... merci d'avance
  • # libc

    Posté par . Évalué à 3.

    gettimeofday, comme beaucoup des focntions que tu utilises dans des programmes C, est une fonction de la libc, pas du noyau.

    nm /lib/libc-x.y.z.so
    • [^] # Re: libc

      Posté par . Évalué à 0.

      Ok merci pour la réponse, mais moi ce que je voulais savoir, c'est plutôt comment savoir ou elle est la fonction? Car bon, je suis en stage, et on m'a demandé de trouver quelle fonction du noyau était utilisé pour un certain protocole... donc moi, ben j'ai regardé les appels fonctions utilisées par le protocole et je veux ensuite, ben descendre de proche en proche pour arriver au fonction du noyau utilisé, c'est bien comme ça non?
      • [^] # Re: libc

        Posté par (page perso) . Évalué à 2.

        Bon, déjà, avoir les sources est essentiel ;)

        Après, pour pouvoir sauter d'un appel de fonction à sa déclaration, tu passes par les fontionnalités de ton éditeur de texte préféré.
        La plupart (enfin, Vim :D) utilise CTAGS et ses dérivés (ex: http://ctags.sourceforge.net/whatis.html ) pour faire l'indexation. Je sais que Emacs peut utiliser Etags/Ctags, qu'Eclipse peut utiliser Ctags ou un indexeur à lui, et je pense que d'autres IDE C/C++ font de même.

        Bref, je pense que ce que tu cherches, c'est "comment utiliser ton éditeur de texte préféré dans un projet C"... et là, il faut consulter le manuel ;)
  • # Sans avoir à télécharger les sources...

    Posté par . Évalué à 2.

    il y a cette adresse : http://lxr.linux.no/source/
    Peut-être existe-t-il d'autres site qui soient mis à jour plus régulièrement.
    A la limite, tu peux monter le même site chez toi à partir des sources de Linux et de http://sourceforge.net/projects/lxr

    A propos de l'exemple que tu donnes faut savoir que c'est une syscall donc tu dois rechercher sys_gettimeofday

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.