Skip to main content

Linux - команда Unix: nm

Основные команды Linux (Май 2024)

Основные команды Linux (Май 2024)
Anonim

nm - список символов из объектных файлов

СИНТАКСИС

нм -a|--debug-Симс |--extern только -B |--demangle= стиль -D|--dynamic -S|--print размера -s|--print-armap ||--print-имя-файла -n|-v|--numeric сортировки -п|--no сортировки |--reverse сортировки --size сортировки -u|--undefined только -t основание системы счисления |--radix = основание системы счисления |--portability --target = bfdname -f формат |--format = формат --defined только -l|--line-номер --no-demangle -V|--версия -X 32_64 --Помогите objfile …

ОПИСАНИЕ

GNUнм перечисляет символы из объектных файлов objfile …. Если в качестве аргументов не указаны никакие объектные файлы,нм принимает файл a.out .

Для каждого символа,нм показывает:

*

Значение символа в радиксе, выбранном параметрами (см. Ниже), или шестнадцатеричное значение по умолчанию.

*

Тип символа. Используются, по крайней мере, следующие типы; другие также, в зависимости от формата объектного файла. Если в нижнем регистре символ является локальным; если в верхнем регистре символ является глобальным (внешним).

Значение символа является абсолютным и не будет изменено дальнейшим связыванием.

В

Символ находится в разделе неинициализированных данных (известном как BSS).

С

Символ является общим. Общие символы - неинициализированные данные. При связывании могут отображаться несколько общих символов с тем же именем. Если символ определен где угодно, общие символы рассматриваются как неопределенные ссылки.

D

Символ находится в секции инициализированных данных.

г

Символ находится в инициализированной секции данных для небольших объектов. Некоторые форматы объектных файлов обеспечивают более эффективный доступ к небольшим объектам данных, таким как глобальная переменная int, а не к большому глобальному массиву.

я

Символ является косвенной ссылкой на другой символ. Это GNUextension для формата файла a.out, который редко используется.

N

Символ является отладочным символом.

р

Символ находится в разделе данных только для чтения.

S

Символ находится в неинициализированной секции данных для небольших объектов.

T

Символ находится в разделе текста (кода).

U

Символ не определен.

В

Символ - слабый объект. Когда слабый определенный символ связан с нормальным определенным символом, нормальный определенный символ используется без ошибок. Когда слабый неопределенный символ связан и символ не определен, значение слабого символа становится равным нулю без ошибок.

W

Символ является слабым символом, который не был специально помечен как символ слабого объекта. Когда слабый определенный символ связан с нормальным определенным символом, нормальный определенный символ используется без ошибок. Когда слабый неопределенный символ связан и символ не определен, значение слабого символа становится равным нулю без ошибок.

-

Символ является символом stabs в объектном файле a.out. В этом случае следующие значения будут напечатаны другими полями, полем удаления stabs и типом stab. Символы Stabs используются для хранения отладочной информации.

?

Тип символа неизвестен или конкретный формат объектного файла.

*

Название символа.

ОПЦИИ

Длинные и короткие формы опций, показанные здесь как альтернативы, эквивалентны.

--print-имя-файла

Предварите каждый символ по имени входного файла (или члена архива), в котором он был найден, а не только для идентификации входного файла только перед всеми его символами.

-a

--debug-Симс

Отображать все символы, даже символы только для отладчика; обычно они не указаны.

-B

Такой же как--format = BSD (для совместимости с MIPSнм).

--demangle = стиль

Декодирование ( demangle ) низкоуровневые имена символов в именах пользовательского уровня. Помимо удаления начального подчеркивания, добавленного системой, это делает имена функций C ++ доступными для чтения. У разных компиляторов разные стили оформления. Необязательный аргумент стиля demangling можно использовать для выбора подходящего стиля для вашего компилятора.

--no-demangle

Не разменяйте имена символов низкого уровня. Это значение по умолчанию.

-D

--dynamic

Отображать динамические символы, а не обычные символы. Это имеет смысл только для динамических объектов, таких как определенные типы разделяемых библиотек.

-f формат

--format = формат

Использовать формат вывода формат , который может быть «bsd», «sysv» или «posix». По умолчанию используется «bsd». Только первый символ формат является значительным; это может быть как верхний, так и нижний регистр.

--extern только

Отображать только внешние символы.

-l

--line-номер

Для каждого символа используйте отладочную информацию, чтобы попытаться найти имя файла и номер строки. Для определенного символа найдите номер строки адреса символа. Для неопределенного символа найдите номер строки записи перемещения, которая ссылается на символ. Если информация о номере линии может быть найдена, распечатайте ее после другой информации о символе.

-n

-v

--numeric сортировки

Сортировка символов по их адресам, а не по алфавиту по их именам.

-п

--no сортировки

Не утруждайте себя сортировкой символов в любом порядке; напечатайте их в указанном порядке.

--portability

Используйте стандартный формат вывода POSIX.2 вместо формата по умолчанию. Эквивалентно-f posix.

-S

--print размера

Размер печати определенных символов для формата вывода «bsd».

-s

--print-armap

При перечислении символов из элементов архива включайте индекс: сопоставление (хранящееся в архивеАрканзас или жеranlib), из которых модули содержат определения, для которых имена.

--reverse сортировки

Изменить порядок сортировки (числовой или буквенный); пусть последнее придет первым.

--size сортировки

Сортировка символов по размеру. Размер вычисляется как разница между значением символа и значением символа со следующим более высоким значением. Размер символа печатается, а не значение.

-t основание системы счисления

--radix = основание системы счисления

использование основание системы счисления в качестве основы для печати значений символов. Это должно бытьd для десятичных знаков,о для восьмеричного илиИкс для шестнадцатеричных.

--target = bfdname

Укажите формат объектного кода, отличный от формата вашей системы по умолчанию.

-u

--undefined только

Отображать только неопределенные символы (внешние для каждого объектного файла).

--defined только

Отображать только определенные символы для каждого объектного файла.

-V

--версия

Показывать номер версиинм и выйти.

-ИКС

Этот параметр игнорируется для совместимости с AIX-версиейнм, Он принимает один параметр, который должен быть строкой32_64, Режим по умолчанию AIXнм соответствует-X 32, который не поддерживается GNUнм.

--Помогите

Показать сводные данные о вариантахнм и выйти.

СМОТРИТЕ ТАКЖЕ

Арканзас (1), objdump (1), ranlib (1), а также записи Info для Binutils .

Важный: Использовать человек команда ( % человек ), чтобы увидеть, как команда используется на вашем конкретном компьютере.