Используйте «nm» для отображения символов из объектных файлов.
СИНТАКСИС
nm [ -a | – debug-syms ] [ -g | – только extern ] < бр /> [ -B ] [ -C | – demangle [= стиль ]] [<сильный > -D | – динамический ]
[ -S | – печать размер ] [<сильный > -s | – печать armap ]
[ -A | -o | – -print-имя файла-]
[ -n | -v | – числовой сортировки ] [ -p | – нет сортировки ]
[ -r | – обратный сортировки ] [ – размер сортировки ] [ -u | – не определено только ]
[ -t радикс | – Radix = радикс ] [ -P | – портативность ]
[ – цель = bfdname ] [ -f формат | <сильный > – формат = формат ]
[ – де оштрафован только ] [ -l | – строка-число ] [ – нет-demangle ]
[ -V | – версия ] [ -X 32_64 ] [ – помощь ] [ objfile …]
ОПИСАНИЕ
GNU nm перечисляет символы из объектных файлов objfile … Если в качестве аргументов не указаны объектные файлы, nm предполагает наличие файла a .out .
Для каждого символа нм показывает:
*
Значение символа в основаниях, выбранных параметрами (см. Ниже), или шестнадцатеричное значение по умолчанию.
*
Тип символа. По крайней мере, используются следующие типы; другие также зависят от формата объектного файла. Если строчные, символ является локальным; в верхнем регистре символ является глобальным (внешним).
Значение символа является абсолютным и не будет изменено при дальнейшем связывании.
В
Символ находится в разделе неинициализированных данных (известном как BSS).
С
Символ является общим. Общие символы – неинициализированные данные. При связывании могут появляться несколько общих символов с одним и тем же именем. Если символ определен где-либо, общие символы рассматриваются как неопределенные ссылки.
D
Символ находится в разделе инициализированных данных.
г
Символ находится в инициализированном разделе данных для небольших объектов. Некоторые форматы объектных файлов обеспечивают более эффективный доступ к небольшим объектам данных, таким как глобальная переменная int, в отличие от большого глобального массива.
я
Символ является косвенной ссылкой на другой символ. Это расширение GNU для формата объектного файла a.out, которое используется редко.
N
Символ является отладочным символом.
р
Символ находится в разделе данных только для чтения.
S
Символ находится в разделе неинициализированных данных для небольших объектов.
T
Символ находится в текстовом (кодовом) разделе.
U
Символ не определен.
В
Символ является слабым объектом. Когда слабый определенный символ связан с нормальным определенным символом, нормальный определенный символ используется без ошибок. Когда слабый неопределенный символ связан, а символ не определен, значение слабого символа становится равным нулю без ошибок.
W
Символ является слабым символом, который не был специально помечен как символ слабого объекта. Когда слабый определенный символ связан с нормальным определенным символом, нормальный определенный символ используется без ошибок. Когда слабый неопределенный символ связан, а символ не определен, значение слабого символа становится равным нулю без ошибок.
–
Символ является символом удара в объектном файле a.out. В этом случае будут напечатаны следующие значения: другие поля для меток, поле для меток и тип метки. Символы Stabs используются для хранения отладочной информации.
?
Тип символа неизвестен или зависит от формата объектного файла.
*
Название символа
ОПЦИИ
Длинные и короткие формы опций, показанные здесь как альтернативы, эквивалентны.
-A
-o
– печать имя-файла
Каждый символ должен начинаться с имени входного файла (или элемента архива), в котором он был найден, вместо того, чтобы идентифицировать входной файл только один раз перед всеми его символами.
-a
– отладочные-Симс
Показать все символы, даже символы только для отладчика; обычно они не перечислены.
-B
Аналогично – format = bsd (для совместимости с MIPS nm ).
-C
– demangle [= стиль ]
Декодировать ( demangle ) имена символов низкого уровня в имена пользователей.Помимо удаления любого начального подчеркивания, добавленного системой, это делает имена функций C ++ читабельными. Различные компиляторы имеют разные стили искажения. Необязательный аргумент стиля demangling может использоваться для выбора подходящего стиля demangling для вашего компилятора.
– нет-demangle
Не разбирайте имена символов низкого уровня. Это по умолчанию.
-D
– динамический
Отображать динамические символы, а не нормальные символы. Это имеет смысл только для динамических объектов, таких как определенные типы общих библиотек.
-f Формат
– формат = Формат
Используйте выходной формат format , который может быть «bsd», «sysv» или «posix». По умолчанию это «bsd». Только первый символ формата имеет значение; это может быть как верхний, так и нижний регистр.
-g
– ехЬегп только
Отображать только внешние символы.
-l
– строка-число
Для каждого символа используйте отладочную информацию, чтобы попытаться найти имя файла и номер строки. Для определенного символа ищите номер строки адреса символа. Для неопределенного символа ищите номер строки записи перемещения, которая ссылается на символ. Если можно найти информацию о номере строки, напечатайте ее после другой информации о символе.
-n
-v
<Сильного> – числовая сортировка
Сортируйте символы численно по их адресам, а не по алфавиту по их именам.
-p
– нет сортировки
Не пытайтесь сортировать символы в любом порядке; распечатайте их в указанном порядке.
-P
– портативность
Используйте стандартный формат вывода POSIX.2 вместо формата по умолчанию. Эквивалент -f posix .
-S
– печать размер
Размер печати определенных символов для выходного формата “bsd”.
-s
– печать armap
При выводе списка символов из членов архива включите указатель: отображение (хранящееся в архиве ar или ranlib ), модули которого содержат определения, для каких имен.
-r
– обратный сортировки
Обратный порядок сортировки (числовой или буквенный); пусть последний придет первым.
– размер сортировки
Сортировка символов по размеру. Размер вычисляется как разница между значением символа и значением символа со следующим более высоким значением. Размер символа печатается, а не значение.
-t радикс
– Radix = радикс
Используйте radix в качестве основы для печати значений символов. Это должно быть d для десятичного числа, o для восьмеричного или x для шестнадцатеричного.
– цель = bfdname
Укажите формат объектного кода, отличный от формата вашей системы по умолчанию.
-u
– не определено только
Отображать только неопределенные символы (внешние для каждого объектного файла).
– определяется только
Отображать только определенные символы для каждого объектного файла.
-V
– версия
Показать номер версии nm и выйти.
-X
Этот параметр игнорируется для совместимости с версией AIX nm . Он принимает один параметр, который должен быть строкой 32_64 . Режим по умолчанию AIX nm соответствует -X 32 , который не поддерживается GNU nm .
– помощь
Показать сводку параметров nm и выйти.
СМОТРИТЕ ТАКЖЕ
ar (1), objdump (1), ranlib (1) и информационные записи для binutils .
Используйте команду man (% man ), чтобы увидеть, как команда используется на вашем конкретном компьютере.