Skip to main content

Linux - Comando Unix: nm

Troubleshooting using the ldd command (Pode 2024)

Troubleshooting using the ldd command (Pode 2024)
Anonim

nm - lista símbolos de arquivos de objeto

SINOPSE

nm -uma|--debug-syms -g|- somente externo -B -C|--demangle= estilo -D|--dinâmico -S|- tamanho da impressão -s|--print-armap -UMA|-o|--print-file-name -n|-v|- tipo numérico -p|--no-sort -r|--reverse-sort --size-sort -você|- apenas definido -t radix |--radix = radix -P|--portabilidade --target = bfdname -f formato |--formato = formato - apenas definido -eu|--números de linha --no-demangle -V|--versão -X 32_64 --Socorro objfile …

DESCRIÇÃO

GNUnm lista os símbolos dos arquivos de objetos objfile …. Se nenhum arquivo objeto estiver listado como argumento,nm assume o arquivo a.out .

Para cada símbolo,nm mostra:

*

O valor do símbolo, na raiz selecionada pelas opções (veja abaixo), ou hexadecimal por padrão.

*

O tipo de símbolo. Pelo menos os seguintes tipos são usados; outros são, também, dependendo do formato do arquivo objeto. Se estiver em minúsculas, o símbolo é local; se maiúsculo, o símbolo é global (externo).

UMA

O valor do símbolo é absoluto e não será alterado por mais links.

B

O símbolo está na seção de dados não inicializados (conhecida como BSS).

C

O símbolo é comum. Símbolos comuns são dados não inicializados. Ao vincular, vários símbolos comuns podem aparecer com o mesmo nome. Se o símbolo for definido em qualquer lugar, os símbolos comuns serão tratados como referências indefinidas.

D

O símbolo está na seção de dados inicializados.

G

O símbolo está em uma seção de dados inicializada para objetos pequenos. Alguns formatos de arquivo objeto permitem acesso mais eficiente a objetos de dados pequenos, como uma variável global int em oposição a um grande array global.

Eu

O símbolo é uma referência indireta a outro símbolo. Este é um GNUextension para o formato de arquivo objeto a.out que raramente é usado.

N

O símbolo é um símbolo de depuração.

R

O símbolo está em uma seção de dados somente leitura.

S

O símbolo está em uma seção de dados não inicializada para objetos pequenos.

T

O símbolo está na seção de texto (código).

você

O símbolo é indefinido.

V

Um símbolo é um objeto fraco. Quando um símbolo definido fraco é vinculado a um símbolo definido normal, o símbolo definido normal é usado sem erro. Quando um símbolo fraco indefinido é vinculado e o símbolo não é definido, o valor do símbolo fraco torna-se zero sem erro.

W

O símbolo é um símbolo fraco que não foi especificamente marcado como um símbolo de objeto fraco. Quando um símbolo definido fraco é vinculado a um símbolo definido normal, o símbolo definido normal é usado sem erro. Quando um símbolo fraco indefinido é vinculado e o símbolo não é definido, o valor do símbolo fraco torna-se zero sem erro.

-

O símbolo é um símbolo de punhalada em um arquivo de objeto a.out. Nesse caso, os próximos valores impressos são os stabs outros campos, o campo stabs desc e o tipo stab. Os símbolos Stabs são usados ​​para conter informações de depuração.

?

O tipo de símbolo é desconhecido ou o formato de arquivo de objeto é específico.

*

O nome do símbolo.

OPÇÕES

As formas longas e curtas de opções, mostradas aqui como alternativas, são equivalentes.

-UMA

-o

--print-file-name

Preceda cada símbolo pelo nome do arquivo de entrada (ou membro do archive) no qual ele foi localizado, em vez de identificar o arquivo de entrada apenas uma vez, antes de todos os seus símbolos.

-uma

--debug-syms

Exibe todos os símbolos, até mesmo os símbolos somente do depurador; normalmente estes não estão listados.

-B

O mesmo que--format = bsd (para compatibilidade com o MIPSnm).

-C

--demangle = estilo

Decodificar demangle ) nomes de símbolo de baixo nível em nomes de nível de usuário. Além de remover qualquer sublinhado inicial prefixado pelo sistema, isso torna os nomes das funções C ++ legíveis. Compiladores diferentes têm diferentes estilos de mangling. O argumento opcional de estilo de desmembramento pode ser usado para escolher um estilo de desmancha apropriado para seu compilador.

--no-demangle

Não desmanche nomes de símbolos de baixo nível. Este é o padrão.

-D

--dinâmico

Exibe os símbolos dinâmicos em vez dos símbolos normais. Isso só é significativo para objetos dinâmicos, como certos tipos de bibliotecas compartilhadas.

-f formato

--formato = formato

Use o formato de saída formato , que pode ser "bsd", "sysv" ou "posix". O padrão é "bsd". Apenas o primeiro caractere de formato é significativo; pode ser maiúscula ou minúscula.

-g

- somente externo

Exibe apenas símbolos externos.

-eu

--números de linha

Para cada símbolo, use informações de depuração para tentar encontrar um nome de arquivo e um número de linha. Para um símbolo definido, procure o número da linha do endereço do símbolo. Para um símbolo indefinido, procure o número da linha de uma entrada de relocação que se refere ao símbolo. Se a informação do número da linha puder ser encontrada, imprima-a após as outras informações do símbolo.

-n

-v

- tipo numérico

Classifique os símbolos numericamente por seus endereços, em vez de alfabeticamente por seus nomes.

-p

--no-sort

Não se preocupe em classificar os símbolos em qualquer ordem; imprimi-los na ordem encontrada.

-P

--portabilidade

Use o formato de saída padrão POSIX.2 em vez do formato padrão. Equivalente a-f posix.

-S

- tamanho da impressão

Tamanho de impressão de símbolos definidos para o formato de saída "bsd".

-s

--print-armap

Ao listar os símbolos dos membros do arquivo, inclua o índice: um mapeamento (armazenado no arquivo porar ouranlib) dos quais os módulos contêm definições para quais nomes.

-r

--reverse-sort

Inverta a ordem do tipo (seja numérico ou alfabético); deixe o último vir em primeiro lugar.

--size-sort

Ordenar símbolos por tamanho. O tamanho é calculado como a diferença entre o valor do símbolo e o valor do símbolo com o próximo valor mais alto. O tamanho do símbolo é impresso, em vez do valor.

-t radix

--radix = radix

Usar radix como a base para imprimir os valores dos símbolos. Deve serd para decimal,o para octal oux para hexadecimal.

--target = bfdname

Especifique um formato de código de objeto diferente do formato padrão do seu sistema.

-você

- apenas definido

Exibe apenas símbolos indefinidos (aqueles externos a cada arquivo de objeto).

- apenas definido

Exibe apenas símbolos definidos para cada arquivo de objeto.

-V

--versão

Mostrar o número da versão denm e sair.

-X

Esta opção é ignorada para compatibilidade com a versão do AIXnm. Leva um parâmetro que deve ser a string32_64. O modo padrão do AIXnm corresponde a-X 32, que não é suportado pelo GNUnm.

--Socorro

Mostrar um resumo das opções paranm e sair.

VEJA TAMBÉM

ar (1), objdump (1), ranlib (1), e as entradas de Info para binutils .

Importante: Use o homem comando ( % homem ) para ver como um comando é usado em seu computador particular.