La commande objdump linux

La commande objdump linux

«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:

  • Pour déboguer le fichier d'objet
  • Récupération des en-têtes de fichiers
  • Obtenir le nom bfdn
  • Récupération en en-tête d'archives
  • Obtenir des compensations d'un fichier
  • Démontage d'un fichier d'objet

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!