Skip to main content

Linux - Commande Unix: nm

Introduction to Linux and Basic Linux Commands for Beginners (Avril 2024)

Introduction to Linux and Basic Linux Commands for Beginners (Avril 2024)
Anonim

nm - liste les symboles des fichiers objets

SYNOPSIS

nm -une|--debug-syms -g|- externe seulement -B -C|--demangle= style -RÉ|--dynamique -S|--print-size -s|--print-armap -UNE|-o|--print-nom-fichier -n|-v|--numérique-sort -p|- pas de tri -r|--revers-trier --size-sort -u|--undefined-only -t base |--radix = base -P|--portabilité --target = bfdname -F format |--format = format --défini seulement -l|--line-numbers --no-demangle -V|--version -X 32_64 --Aidez-moi objfile …

LA DESCRIPTION

GNOUnm liste les symboles des fichiers objets objfile …. Si aucun fichier objet n'est répertorié comme argument,nm assume le fichier a.out .

Pour chaque symbole,nm spectacles:

*

La valeur du symbole, dans la base sélectionnée par les options (voir ci-dessous) ou hexadécimale par défaut.

*

Le type de symbole. Au moins les types suivants sont utilisés; d'autres le sont également en fonction du format du fichier objet. En minuscule, le symbole est local; en majuscule, le symbole est global (externe).

UNE

La valeur du symbole est absolue et ne sera pas modifiée par une liaison ultérieure.

B

Le symbole se trouve dans la section de données non initialisée (appelée BSS).

C

Le symbole est commun. Les symboles communs sont des données non initialisées. Lors de la liaison, plusieurs symboles communs peuvent apparaître avec le même nom. Si le symbole est défini n'importe où, les symboles communs sont traités comme des références non définies.

Le symbole est dans la section de données initialisée.

g

Le symbole est dans une section de données initialisée pour les petits objets. Certains formats de fichier objet permettent un accès plus efficace à de petits objets de données, tels qu'une variable int globale par opposition à un grand tableau global.

je

Le symbole est une référence indirecte à un autre symbole. Ceci est une extension de GNU au format de fichier objet a.out qui est rarement utilisé.

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 se trouve dans une section de données non initialisée pour les petits objets.

T

Le symbole est dans la section de texte (code).

U

Le symbole n'est pas défini.

V

Un symbole est un objet faible. Lorsqu'un symbole défini faible est lié à un symbole défini normal, le symbole défini normal est utilisé sans erreur. Lorsqu'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 erreur.

W

Le symbole est un symbole faible qui n'a pas été spécifiquement identifié comme symbole d'objet faible. Lorsqu'un symbole défini faible est lié à un symbole défini normal, le symbole défini normal est utilisé sans erreur. Lorsqu'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 erreur.

-

Le symbole est un symbole dans un fichier objet a.out. Dans ce cas, les prochaines valeurs imprimées sont les champs de stabs, le champ de stabs et le type de stab. Les symboles Stabs sont utilisés pour conserver les informations de débogage.

?

Le type de symbole est inconnu ou le format de fichier objet spécifique.

*

Le nom du symbole.

OPTIONS

Les formes longues et courtes d'options, présentées ici à titre d'alternatives, sont équivalentes.

-UNE

-o

--print-nom-fichier

Faites précéder chaque symbole du nom du fichier d'entrée (ou du membre de l'archive) dans lequel il a été trouvé, plutôt que d'identifier le fichier d'entrée une seule fois, avant tous ses symboles.

-une

--debug-syms

Afficher tous les symboles, même les symboles réservés au débogueur; normalement ceux-ci ne sont pas listés.

-B

Le même que--format = bsd (pour compatibilité avec le MIPSnm).

-C

--demangle = style

Décoder ( démêler ) les noms de symbole de bas niveau en noms de niveau utilisateur. En plus de supprimer tout trait de soulignement initial ajouté par le système, cela rend les noms de fonctions C ++ lisibles. Différents compilateurs ont des styles différents. L'argument de style de démêlage facultatif peut être utilisé pour choisir un style de démêlage approprié pour votre compilateur.

--no-demangle

Ne démêlez pas les noms de symbole de bas niveau. C'est la valeur par défaut.

-RÉ

--dynamique

Affichez les symboles dynamiques plutôt que les symboles normaux. Cela n'a de sens que pour les objets dynamiques, tels que certains types de bibliothèques partagées.

-F format

--format = format

Utilisez le format de sortie format , qui peut être "bsd", "sysv" ou "posix". La valeur par défaut est "bsd". Seul le premier personnage de format est significatif; il peut s'agir de majuscules ou de minuscules.

-g

- externe seulement

Afficher uniquement les symboles externes.

-l

--line-numbers

Pour chaque symbole, utilisez les informations de débogage pour essayer de trouver un nom de fichier et un numéro de ligne. Pour un symbole défini, recherchez le numéro de ligne de l'adresse du symbole. Pour un symbole non défini, recherchez le numéro de ligne d'une entrée de relocalisation qui fait référence au symbole. Si des informations sur le numéro de ligne peuvent être trouvées, imprimez-les après les informations sur les autres symboles.

-n

-v

--numérique-sort

Triez les symboles numériquement par leur adresse plutôt que par ordre alphabétique par leur nom.

-p

- pas de tri

Ne prenez pas la peine de trier les symboles dans n’importe quel ordre; imprimez-les dans l'ordre rencontré.

-P

--portabilité

Utilisez le format de sortie standard POSIX.2 au lieu du format par défaut. Équivalent à-f posix.

-S

--print-size

Taille d'impression des symboles définis pour le format de sortie "bsd".

-s

--print-armap

Lorsque vous listez les symboles des membres de l’archive, incluez l’index: un mappagear ouRanlib) dont les modules contiennent des définitions pour quels noms.

-r

--revers-trier

Inverser l'ordre du tri (numérique ou alphabétique); laissez le dernier venir en premier.

--size-sort

Trier les symboles par taille. La taille est calculée en tant que différence entre la valeur du symbole et la valeur du symbole avec la valeur immédiatement supérieure. La taille du symbole est imprimée plutôt que la valeur.

-t base

--radix = base

Utilisation base en tant que base pour l'impression des valeurs de symbole. Ce doit être pour décimal,o pour octal, ouX pour hexadécimal.

--target = bfdname

Spécifiez un format de code d'objet autre que le format par défaut de votre système.

-u

--undefined-only

Afficher uniquement les symboles non définis (ceux externes à chaque fichier d’objet).

--défini seulement

Affiche uniquement les symboles définis pour chaque fichier d'objet.

-V

--version

Afficher le numéro de version denm et sortir.

-X

Cette option est ignorée pour la compatibilité avec la version AIX denm. Il faut un paramètre qui doit être la chaîne32_64. Le mode par défaut d'AIXnm Correspond à-X 32, qui n'est pas supporté par GNUnm.

--Aidez-moi

Afficher un résumé des options pournm et sortir.

VOIR ÉGALEMENT

ar (1), objdump (1), Ranlib (1), et les entrées info pour binutils .

Important: Utilisez le homme commande ( % homme ) pour voir comment une commande est utilisée sur votre ordinateur.