web-dev-qa-db-fra.com

Outil pour analyser la taille des sections ELF et le symbole

J'ai besoin d'un moyen d'analyser le fichier de sortie de mon compilateur GCC pour ARM. Je compile pour du métal nu et je suis assez préoccupé par la taille. Je peux utiliser arm-none-eabi-objdump fourni par le compilateur croisé mais l'analyse de la sortie n'est pas quelque chose que je serais impatient de faire s'il existe un outil pour cette tâche. Connaissez-vous un tel outil existant? Ma recherche n'a donné aucun résultat.

Encore une chose, chaque fonction de mon propre code se trouve dans sa propre section.

27
RushPL

Vous pouvez utiliser nm et size pour obtenir la taille des fonctions et des sections ELF.

Pour obtenir la taille des fonctions (et des objets avec une durée de stockage statique):

$ nm --print-size --size-sort --radix=d tst.o

La deuxième colonne montre la taille en décimal de la fonction et des objets.

Pour obtenir la taille des sections:

$ size -A -d tst.o

La deuxième colonne montre la taille en décimale des sections.

49
ouah

L'utilitaire readelf est pratique pour afficher une variété d'informations sur les sections, y compris les tailles de section, par exemple:

arm-none-eabi-readelf -e foo.o

Si vous êtes intéressé par l'encombrement de la mémoire au moment de l'exécution, vous pouvez ignorer les sections qui n'ont pas l'indicateur 'A' (allouer) défini.

8
Lance Richardson

puncover utilise objdump et quelques autres outils gcc pour générer des pages html que vous pouvez facilement parcourir pour savoir où va votre code et votre espace de données.

C'est une interface beaucoup plus agréable que la sortie texte des outils gcc.

0
sarfata