Scroll to navigation

NM(1) Outils de Développement GNU NM(1)

NOM

nm - Lister les symboles des fichiers objets

SYNOPSIS

nm [-a--debug-syms] [-g--extern-only]
[-B] [-C--demangle[=style]] [-D--dynamic]
[-S--print-size] [-s--print-armap]
[-A-o--print-file-name]
[-n-v--numeric-sort] [-p--no-sort]
[-r--reverse-sort] [--size-sort] [-u--undefined-only]
[-t racine--radix=racine] [-P--portability]
[--target=nom-bfd] [-fformat--format=format]
[--defined-only] [-l--line-numbers] [--no-demangle]
[-V--version] [-X 32_64] [--help] [fichier-objet...]

DESCRIPTION

GNU nm liste les symboles provenant des fichiers objets fichier-objet... Si aucun fichier objet n'est fourni comme argument, nm suppose qu'on lui a spécifié le fichier a.out.

Pour chaque symbole, nm affiche :

  • La valeur du symbole, dans la racine sélectionnée par les options (voir plus bas), ou en hexadécimal par défaut.
  • Le type du symbole. Au moins les types suivants sont utilisés ; d'autres peuvent également l'être, en fonction du format du fichier objet. S'il est en minuscules, le symbole est local ; s'il est en majuscules, le symbole est global (externe).
"A"
La valeur du symbole est absolue, et ne sera pas modifiée par une édition de liens ultérieure.
"B"
Le symbole est dans la section des données non initialisées (connue sous le nom de BSS).
"C"
Le symbole est commun. Les symboles communs sont des données non initialisées. Lors de l'édition des liens, plusieurs symboles communs peuvent apparaître sous le même nom. Si le symbole est défini ailleurs, les symboles communs sont traités comme des références indéfinies.
"D"
Le symbole est dans la section des données initialisées.
"G"
Le symbole est dans une section de données initialisées pour de petits objets. Certains formats de fichier objet permettent un accès plus efficace aux petits objets de données, comme une variable globale int (entière), par opposition à un grand tableau global.
"I"
Le symbole est une référence indirecte vers un autre symbole. C'est une extension GNU du format de fichier objet a.out qui est rarement utilisée.
"N"
Le symbole est un symbole de débogage.
"R"
Le symbole est dans une section de données en lecture seule.
"S"
Le symbole est dans une section de données non initialisées pour les petits objets.
"T"
Le symbole est dans la section de texte (code).
"U"
Le symbole n'est pas défini.
"V"
Le symbole est un objet faible. Quand un symbole faible défini est lié avec un symbole normal défini, le symbole normal défini est utilisé sans générer d'erreur. Quand un symbole faible non défini est lié et que le symbole n'est pas défini, la valeur du symbole faible devient zéro sans générer d'erreur.
"W"
Le symbole est un symbole faible qui n'a pas été spécifiquement été marqué comme symbole objet faible. Quand un symbole faible défini est lié à un symbole normal défini, le symbole normal défini est utilisé sans générer d'erreur. Quand un symbole faible non défini est lié et que le symbole n'est pas défini, la valeur du symbole faible devient zéro sans générer d'erreur.
"-"
Le symbole est un symbole stabs d'un fichier objet a.out. Dans ce cas, les valeurs affichées suivantes sont le champ stabs other, le champ stabs desc, et le type de stab. Les symboles stabs sont utilisés pour conserver des informations de débogage.
"?"
Le type du symbole est inconnu, ou spécifique au format de fichier objet.
Le nom du symbole.

OPTIONS

Les formes longues et courtes des options, montrées ici comme alternatives, sont équivalentes.

Faire précéder chaque symbole par le nom du fichier d'entrée (ou du membre de l'archive) dans lequel il a été trouvé, plutôt que de n'identifier le fichier d'entrée qu'une seule fois, avant tous ses symboles.
Afficher tous les symboles, même ceux spécifiques au débogueur ; normalement, ceux-ci ne sont pas listés.
Identique à --format=bsd (pour la compatibilité avec le nm MIPS).
Décoder (demangle) les noms de symboles de bas niveau en noms de niveau utilisateur. En plus de supprimer tout « _ » initial ajouté par le système, ceci rend lisibles les noms de fonctions C++. Des compilateurs différents ont des styles de codage différents. L'argument optionnel de style de décodage peut être utilisé pour choisir un style de décodage approprié à votre compilateur.
Ne pas décoder les noms de symboles de bas niveau. C'est le défaut.
Afficher les symboles dynamiques plutôt que les symboles normaux. Ceci n'a de sens que pour les objets dynamiques, comme certains types de bibliothèques partagées.
Utiliser le format de sortie format, qui peut être « bsd », « sysv », ou « posix ». Le défaut est « bsd ». Seul le premier caractère de format est significatif : il peut être en minuscule ou en majuscule.
N'afficher que les symboles externes.
Pour chaque symbole, utiliser des informations de débogage pour essayer de trouver un nom de fichier et un numéro de ligne. Pour un symbole défini, rechercher le numéro de ligne de l'adresse du symbole. Pour un symbole non défini, rechercher le numéro de ligne d'une entrée de relogement qui se réfère au symbole. Si l'information de numéro de ligne peut être trouvée, l'afficher après les autres informations sur le symbole.
Trier les symboles numériquement par leur adresse, et non pas alphabétiquement par leur nom.
Ne pas trier les symboles, uniquement les afficher dans leur ordre de rencontre.
Utiliser le format de sortie standard POSIX.2 au lieu du format par défaut. Équivalent à -f posix.
Afficher la taille des symboles définis pour le format de sortie « bsd ».
Lors du listage des symboles des membres de l'archive, inclure l'index (stocké dans l'archive par ar ou ranlib), c.-à-d. une correspondance entre les modules et le nom des symboles qui y sont définis.
Renverser l'ordre de tri (numérique ou alphabétique) ; commencer par le dernier.
Trier les symboles par taille. La taille est calculée par la différence entre la valeur du symbole et la valeur du symbole de valeur immédiatement supérieure. La taille du symbole est affichée, plutôt que sa valeur.
Utiliser racine comme racine servant à l'affichage des valeurs des symboles. Elle doit être d pour décimal, o pour octal, ou x pour hexadécimal.
Spécifier un format de code objet différent de celui utilisé par défaut sur votre système.
N'afficher que les symboles non définis (ceux externes à chaque fichier objet).
N'afficher que les symboles définis pour chaque fichier objet.
Afficher le numéro de version de nm et se terminer.
Cette option ignorée est utilisée pour la compatibilité avec la version AIX de nm. Elle prend un paramètre qui doit être la chaîne 32_64. Le mode par défaut du nm AIX correspond à -X 32, qui n'est pas supporté par le nm GNU.
Afficher un résumé des options de nm et se terminer.

VOIR AUSSI

ar(1), objdump(1), ranlib(1), et les entrées Info pour binutils.

COPYRIGHT

Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.

L'autorisation est donnée de copier, de distribuer et/ou de modifier ce document sous les termes de la GNU Free Documentation License version 1.1 ou toute autre version ultérieure publiée par la Free Software Foundation, sans section invariante ni texte de couverture ni texte de quatrième de couverture. Une copie de la licence est incluse dans la section intitulée « GNU Free Documentation License ».

TRADUCTION

Frédéric Delanoy <delanoy_f at yahoo.com>, 2002.

8 août 2002 binutils-2.13.90.0.2