Est-ce que quelqu'un pourrait expliquer les colonnes montrées de la table de symbole en utilisant readelf
?Quelles sont les significations des colonnes de la table de symboles affichées par readelf?
Répondre
Vous pouvez:
man readelf
ou regarder ces tutoriels:
Considérez ce qui suit:
Table Symbole .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 nombre de symbolesValue
= L'adresse du symboleSize
= La taille du symboleType
= type de symbole:Func
= Fonction,Object
,File
(nom du fichier source),Section
= section de mémoire,Notype
= symbole absolu non typé ou non définiBind
=GLOBAL
de liaison désigne le symbole est visible à l'extérieur du dossier.LOCAL
La liaison est visible uniquement dans le fichier.WEAK
est comme global, le symbole peut être outrepassé.Vis
= Les symboles peuvent être par défaut, protégés, cachés ou internes.Ndx
= La section numéro le symbole est en ABS signifie absolue:. Pas adapté à une relocalisation de l'adresse de la sectionName
= nom symbole
que signifie "UNIQUE" en tant que valeur pour bind? –
@Caladain Que signifie 'La taille du symbole'? Dites, si le symbole est un nom de fonction, la dose «Taille» signifie la taille de la fonction (par exemple, combien d'instructions cette fonction a-t-elle)? –
Ok cette question est vieux, mais bon vieux Google donne si vous cherchez une table de symboles et NDX;
Voici ce que j'ai découvert:
Le code C compilé avec avr-gcc:
int XYZ = 123;
int ABC;
lorsque le fichier Elf généré est analysé à l'aide
readelf --symbols KoreOS.elf
vous obtenez en sortie :
Num: Value Size Type Bind Vis Ndx Name
...
148: 0080200b 2 OBJECT GLOBAL DEFAULT 2 XYZ
...
258: 00803878 2 OBJECT GLOBAL DEFAULT 3 ABC
...
J'utilise la colonne NDX comme indice si la variable est initialisée ou non. Mais je n'ai trouvé aucune documentation nulle part, je ne fais que deviner.
salutations, Dominik
Je pense que le terrain Ndx indique le numéro de section où ce symbole est défini.
Effectuez un readelf -a <file>
et recherchez la section correspondant à l'adresse pour un symbole donné. Je parie que le numéro de section de cette section apparaîtra dans le champ Ndx.
- 1. Quelles sont les significations de * cast * et * conversion *?
- 2. Quelles sont les significations des clés de hachage lors de l'appel de ObjectSpace.count_objects?
- 3. Quelles sont les significations de ces configurations de limite de connexion pour Firefox?
- 4. Quelles sont les significations des valeurs dans le fournisseur de contenu Android "content // sms /"?
- 5. Quelles sont les informations affichées sur le Plist sur l'iPhone?
- 6. Quelles sont les significations des threads Apple xcode lors du débogage d'une application iPhone?
- 7. créer la table des symboles
- 8. Nom de ces colonnes dans ma table de symboles
- 9. Quelles sont les tables BIN $ ... dans la table ALL_TAB_COLUMNS d'Oracle?
- 10. Problème de débordement de la table des symboles dans Ruby
- 11. comment déterminer quelles colonnes de la table de faits sont utilisées pour calculer des mesures dans un cube OLAP?
- 12. totaux des colonnes de la table displaytag
- 13. Problème de Sprites et les étiquettes sont affichées par des boîtes blanches
- 14. Quelles sont les limitations de WPF par rapport à XNA?
- 15. Liste des symboles inutilisés
- 16. Quelles sont les informations fournies par la variable d'exception ColdFusion?
- 17. Les balises JSf ne sont pas affichées
- 18. Quelles sont les valeurs prises par Camera.Parameters.set ("taille de l'image",?)?
- 19. Quelles sont les caractéristiques de police par défaut dans Android?
- 20. Comment savoir quelles colonnes sont inutilisées dans ALL_TAB_COLS?
- 21. table Convertir en matrice par les noms de colonnes
- 22. Explication readelf -S output
- 23. De retour d'une table de symboles de la bibliothèque partagée
- 24. Quelles sont les utilisations légitimes des crochets de clavier globaux?
- 25. Les images de type mobile ne sont pas affichées
- 26. Tri des colonnes de table avec trieur de table jQuery
- 27. Quelles sont les limitations de HSQLDB?
- 28. Comparer les colonnes de la table Oracle dans SQL
- 29. Quelles sont les utilisations des métadonnées de Clojure?
- 30. La recherche automatisée des utilisateurs, quelles sont les bonnes stratégies?
Je suis également intéressé par une réponse à cette question. En particulier, qu'est-ce que Ndx (from readelf -s)? Probablement, c'est évident pour quelqu'un qui comprend elf. J'ai regardé à la fois la page de manuel et les documents que vous avez listés et je n'ai pas trouvé l'information là-bas. Peut-être que je l'ai juste raté? Ce ne serait pas la première fois. – ejgottl
Surtout: lisez les normes pointées par le LSB: http://www.sco.com/developers/gabi/2003-12-17/contents.html étant le plus intéressant. –