Qu'est-ce que Table des symboles ?

Liste, contenue dans un fichier objet ou exécutable, des noms de fonctions et de variables avec leurs adresses, etc. Utilisée pour l'édition de liens et le débogage ; strip permet de la supprimer.

Nom japonais: シンボルテーブル

« Table des symboles » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Éditeurs de liens, chargeurs et exécutables.

Domaine: Éditeurs de liens, chargeurs et exécutables

S'entraîner : questions sur Table des symboles

Quelle affirmation concernant le fichier objet (.o) produit par le compilateur à partir d'un fichier source est correcte ?

  1. AC'est un programme complet directement exécutable par l'OS
  2. BC'est simplement le code source compressé, sans langage machine
  3. CIl contient du langage machine, mais les adresses des fonctions et variables situées dans d'autres fichiers ne sont pas encore fixées
Afficher la réponse et l'explication

Réponse : C. Il contient du langage machine, mais les adresses des fonctions et variables situées dans d'autres fichiers ne sont pas encore fixées

Un fichier objet contient le langage machine traduit des fonctions du fichier, les valeurs initiales des variables, la liste des noms définis ou référencés (table des symboles) et la liste des emplacements où des adresses seront renseignées ultérieurement (informations de relocalisation). Les instructions appelant une fonction d'un autre fichier, comme printf, conservent une valeur provisoire faute de connaître l'adresse. L'éditeur de liens rassemble plusieurs fichiers objets, fixe les adresses et produit l'exécutable.

Que se passe-t-il lorsqu'on applique la commande strip à un exécutable ?

  1. ALes instructions machine sont optimisées et l'exécution devient plus rapide
  2. BL'exécutable est chiffré et ne peut plus être exécuté par d'autres
  3. CLa table des symboles et les informations de débogage sont supprimées ; le fichier rétrécit, mais les noms de fonctions, etc. deviennent difficiles à voir dans un débogueur
Afficher la réponse et l'explication

Réponse : C. La table des symboles et les informations de débogage sont supprimées ; le fichier rétrécit, mais les noms de fonctions, etc. deviennent difficiles à voir dans un débogueur

Un exécutable peut contenir une table des symboles listant les noms de fonctions et de variables, et des informations de débogage établissant la correspondance avec les lignes du code source. Celles-ci étant inutiles à l'exécution, strip les supprime et réduit la taille du fichier. Mais les noms de fonctions et numéros de ligne ne sont alors plus visibles lors de l'analyse des bogues ; on conserve donc parfois séparément les informations d'avant suppression. Les symboles nécessaires à l'édition de liens dynamique sont conservés.

« Table des symboles » dans les explications

Questions mentionnant « Table des symboles » (2)

  1. Quelle affirmation concernant le fichier objet (.o) produit par le compilateur à partir d'un fichier source est correcte ?
  2. Que se passe-t-il lorsqu'on applique la commande strip à un exécutable ?

Termes associés

Fichier objet Relocalisation Éditeur de liens (linker) Édition de liens dynamique ASLR Bibliothèque partagée Bibliothèque statique Chargeur (loader) Code indépendant de la position Décoration de noms (name mangling)

Retour au glossaire