nm






nm − Lister les symboles des fichiers objets

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...]

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.











                             ‐2‐


    "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.

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

−A

−o

−−print−file−name
    Faire précéder chaque symbole par le nom du fichier
    d’entrée (ou du membre de l’archive) dans lequel il a









                             ‐3‐


    été trouvé, plutôt que de n’identifier le fichier
    d’entrée qu’une seule fois, avant tous ses symboles.

−a

−−debug−syms
    Afficher tous les symboles, même ceux spécifiques au
    débogueur ; normalement, ceux−ci ne sont pas listés.

−B  Identique à  −−format=bsd (pour la compatibilité avec
    le nm MIPS).

−C

−−demangle[=style]
    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.

−−no−demangle
    Ne pas décoder les noms de symboles de bas niveau.
    C’est le défaut.

−D

−−dynamic
    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.

−f format

−−format=format
    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.

−g

−−extern−only
    N’afficher que les symboles externes.

−l

−−line−numbers
    Pour chaque symbole, utiliser des informations de









                             ‐4‐


    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.

−n

−v

−−numeric−sort
    Trier les symboles numériquement par leur adresse, et
    non pas alphabétiquement par leur nom.

−p

−−no−sort
    Ne pas trier les symboles, uniquement les afficher dans
    leur ordre de rencontre.

−P

−−portability
    Utiliser le format de sortie standard POSIX.2 au lieu du
    format par défaut. Ãquivalent à  −f posix.

−S

−−print−size‐‐‐
    Afficher la taille des symboles définis pour le format
    de sortie « bsd ».

−s

−−print−armap
    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.

−r

−−reverse−sort
    Renverser l’ordre de tri (numérique ou alphabétique) ;
    commencer par le dernier.

−−size−sort
    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









                             ‐5‐


    valeur.

−t racine

−−radix=racine
    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.

−−target=nom‐bfd
    Spécifier un format de code objet différent de celui
    utilisé par défaut sur votre système.

−u

−−undefined−only
    N’afficher que les symboles non définis (ceux externes
    Ã  chaque fichier objet).

−−defined−only
    N’afficher que les symboles définis pour chaque fichier
    objet.

−V

−−version
    Afficher le numéro de version de nm et se terminer.

−X  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.

−−help
    Afficher un résumé des options de nm et se terminer.

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

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 ».












                             ‐6‐


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