Linux Unix Command nm

Используйте «nm» для отображения символов из объектных файлов.

СИНТАКСИС

нм [|—отлаживать-Симс] [-грамм|—ехЬегп только]
[] [|—demangle[= Стиль]] [-D|—динамический]
[-S|—печать размера] [-s|—печать armap]
[||—Имя-файла для печати]
[-N|-v|—Числовая сортировка] [-п|—нет сортировки]
[|—обратного рода] [—размер сортировки] [-U|—не определено только]
[-T радикс |—радикс =Radix] [-п|—портативность]
[—цель =bfdname] [формат |—формат =формат]
[—определяется только] [-L|—линии-номер] [—нет-demangle]
[|—версия] [-X 32_64] [—Помогите] [Objfile …]  

ОПИСАНИЕ

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

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

*

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

*

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

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

В

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

С

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

D

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

грамм

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

я

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

N

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

р

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

S

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

T

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

U

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

В

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

W

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

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

?

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

*

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

ПАРАМЕТРЫ

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

—Имя-файла для печати

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

—отлаживать-Симс

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

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

—demangle [=стиль]

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

—нет-demangle

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

-D

—динамический

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

 формат

—формат =формат

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

-грамм

—ехЬегп только

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

-L

—линии-номер

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

-N

-v

—Числовая сортировка

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

-п

—нет сортировки

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

-п

—портативность

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

-S

—печать размера

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

-s

—печать armap

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

—обратного рода

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

—размер сортировки

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

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

—радикс =основание системы счисления

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

—цель =bfdname

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

-U

—не определено только

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

—определяется только

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

—версия

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

-Икс

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

—Помогите

Показать сводку опций нм и выход.

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

ar (1), objdump (1), ranlib (1) и записи Info для binutils.  

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

Ссылка на основную публикацию