«L'Objdump est un utilitaire de ligne de commande utilisé pour afficher des informations sur un objet sur les systèmes de type UNIX. La commande, une fois utilisée, obtient les informations d'un fichier d'objet même lorsque vous n'avez pas son code source. Par conséquent, il peut s'agir d'un outil de débogage pour les fichiers d'objets, surtout lorsque vous travaillez avec des programmes de compilateur."
Ce guide couvre les différentes utilisations de la commande objdump avec des exemples. Vérifiez-le.
Utilisations de la commande objdump
L'objdump a 6 objectifs principaux:
Sa syntaxe de base est:
$ objdump
Il existe de nombreuses options à utiliser avec la commande objdump, et vous pouvez afficher la page d'aide pour les afficher.
$ objdump - help
Cet article utilisera le / bin / echo comme fichier d'objet pour nos exemples. Cependant, vous pouvez utiliser d'autres fichiers d'objets tels que les programmes C. L'utilisation est toujours la même.
Travailler avec Objdump
Afficher les en-têtes de fichier du fichier objet
L'option -f, lorsqu'elle est utilisée avec la commande objdump, récupère tous les en-têtes de fichier associés à un fichier d'objet donné, comme indiqué ci-dessous. N'oubliez pas que nous utilisons le / bin / echo, qui est un fichier exécutable binaire pour la commande echo comme objet dans ce cas.
$ objdump -f / bin / echo
La sortie résultante affichant les en-têtes de fichier sera:
Vous pouvez noter le format et les en-têtes du fichier d'objet à partir de la sortie.
Pour obtenir les en-têtes de fichiers spécifiques à l'objet
Si vous devez afficher des en-têtes de fichiers spécifiques pour le fichier objet que vous utilisez, utilisez l'option -p.
$ objdump -p / bin / echo
Afficher le contenu de l'en-tête de la section
Chaque fichier a des en-têtes de section différents. Si vous devez afficher le contenu de chacun des en-têtes de section, utilisez l'option -h.
$ objdump -h / bin / echo
Dans ce cas, la sortie était:
À partir de la sortie, vous pouvez remarquer que les différents en-têtes de section sont numérotés à partir de 1, et chaque en-tête de section a sa taille, VMA, LMA, File Off et Algn.
Taille: représente la taille de la section chargée.
Vma: représente l'adresse de mémoire virtuelle
LMA: représente l'adresse mémoire logique
Déposer: représente le décalage de la section depuis le début du fichier.
Algn: représente l'alignement de la section.
Les autres détails, tels que l'alloc, les données, la lecture et le contenu, sont les différents indicateurs qui représentent si la section est en lecture ou est chargée.
Afficher les informations de tous les en-têtes
Vous pouvez également obtenir toutes les informations sur les en-têtes du fichier d'objet. Pour ce faire, utilisez l'option -x.
$ objdump -x / bin / echo
Dans cet exemple, la sortie partielle de la commande ci-dessus sera:
Pour obtenir le contenu de l'assembleur de la section exécutable
Pour obtenir le contenu de l'assembleur de la section exécutable, utilisez l'option -D.
$ objdump -d / bin / echo
Dans cet exemple, la sortie partielle est:
La sortie est divisée en sections exécutables, et pour chacune, son contenu de l'assembleur s'affiche comme indiqué. Par exemple, vous pouvez voir la section ".init ”et son contenu de l'assembleur correspondant en dessous avant de passer à la section exécutable suivante du fichier d'objet.
Obtenez le contenu de l'assembleur de chaque section
Le -d affiche le contenu de l'assembleur des sections exécutables uniquement. Cependant, utilisez l'option d si vous avez besoin du contenu pour toutes les sections de fichiers.
$ objdump -d / bin / echo
Pour obtenir tout le contenu de toutes les sections
Pour cela, utilisez l'option -s
$ objdump -s / bin / echo
La sortie pour toutes les sections et leur contenu sera:
Afficher les informations de débogage
L'option -g affiche toutes les informations de débogage disponibles du fichier objet.
$ objdump -g / bin / echo
Afficher le contenu de la table des symboles
Si le fichier d'objet a une table de symboles, vous pouvez afficher son contenu en utilisant l'option -T
$ objdump -t / bin / echo
Conclusion
Une commande objdump est un outil utile pour les programmeurs qui traitent des compilateurs. La commande a plusieurs utilisations, et nous avons couvert l'exemple le plus courant. Vous pouvez également vérifier sa page homme pour plus de détails sur la façon dont vous pouvez utiliser l'outil. De plus, la commande peut devenir un peu écrasante. Alors, continuez à le pratiquer davantage. Tous mes vœux!