web-dev-qa-db-fra.com

Quelles sont les significations des colonnes de la table des symboles affichées par readelf?

Quelqu'un pourrait-il expliquer les colonnes affichées de la table des symboles en utilisant readelf?

46
Swaroop S

Considérer ce qui suit:

Table des symboles .symtab contient 1203 entrées:

 Num:    Value  Size Type    Bind   Vis      Ndx Name
 310: a0008120     0 NOTYPE  GLOBAL DEFAULT  ABS _gp  
 734: a0000010    32 OBJECT  GLOBAL DEFAULT   77 v 
 818: 9d000018   496 FUNC    GLOBAL DEFAULT   71 main 
 849: a0000124     4 OBJECT  GLOBAL DEFAULT   78 phrase 
 955: a0000000     9 OBJECT  GLOBAL DEFAULT   77 peppers  
1020: a000023c   192 OBJECT  GLOBAL DEFAULT   80 bins
  • Num: = Le numéro de symbole
  • Value = l'adresse du symbole
  • Size = La taille du symbole
  • Type = type de symbole: Func = Fonction, Object, File (nom du fichier source), Section = section mémoire, Notype = symbole absolu non typé ou non défini
  • Bind = GLOBAL la liaison signifie que le symbole est visible à l'extérieur du fichier. LOCAL la liaison n'est visible que dans le fichier. WEAK est comme global, le symbole peut être remplacé.
  • Vis = Les symboles peuvent être par défaut, protégés, cachés ou internes.
  • Ndx = Le numéro de section dans lequel se trouve le symbole. ABS signifie absolu: non ajusté à la relocalisation d'une adresse de section
  • Name = nom du symbole
47
Caladain
2
the_void

Je pense que le champ Ndx montre le numéro de section où ce symbole est défini.

Fait une readelf -a <file>, et découvrez à quelle section l'adresse correspond pour un symbole donné.

Je parie que le numéro de section de cette section apparaîtra dans le champ Ndx.

0
T.I.