nm - вывод таблицы имен об ектного файла обычного формата
nm [-o] [-x] [-h] [-v] [-n] [-e] [-f] [-u] [-r] [-p] [-V] [-T] файл ...
Команда nm выдает на стандартный вывод таблицу имен для каждого об ектного файла, указанного в командной строке. Файл может быть как перемещаемым, так и абсолютным об ектным файлом, или может быть архивом из таких файлов. Для каждого элемента таблицы выдается следующая информация:
Имя элемента таблицы. |
Значение, выражаемое как смещение или адрес, в зависимости от класса хранения. |
Класс хранения. |
Информация о типе. Если элемент описывает экземпляр структуры или об единения, то за типом будет выведено имя структуры или об единения (например, struct-имя). Если элемент соответствует массиву, то размер массива будет указан за типом (например, char[n][m]). Заметим, что для наличия этой информации файл должен быть откомпилирован командой с опцией -g. |
Размер в байтах, если он определен. Заметим, что для наличия этой информации файл должен быть откомпилирован командой с опцией -g. |
Номер строки в файле с исходным текстом, в которой об ект определяется, если эта информация имеет смысл. Заметим, что для наличия этой информации файл должен быть откомпилирован командой с опцией -g. |
Для об ектов с классом хранения статический (static) и внешний (extern) указывается секция, которой принадлежит об ект: секция команд (.text), секция инициализированных данных (.data) или секция неинициализированных данных (.bss). |
Следующие опции определяют содержание и формат информации, выдаваемой командой nm:
Выводить значение и размер в восьмеричном виде, а не в десятичном. |
Выводить значение и размер в шестнадцатеричном виде, а не в десятичном. |
Не выводить заголовок. |
Отсортировать внешние об екты по значению. |
Отсортировать внешние об екты по алфавиту. |
Выдавать только статические и внешние об екты. |
Выдавать всю информацию. Выводятся обычно подавляемые избыточные элементы таблицы имен (.text, .data, .lib, .bss). |
Выводить только неопределенные об екты. |
Добавлять в начале каждой выводимой строки имя об ектного файла или архива. |
Выводить в легко обозримом, кратком формате. Перед именем каждого об екта стоит его значение (пробелы, если не определено) и одна из следующих букв: U (неопределенный), A (абсолютный), T (входит в секцию команд), D (входит в секцию данных), S (входит в секцию, определенную пользователем), R (располагается в регистре), F (файл) или C (входит в общий блок). Информация о локальных (не внешних) об ектах выдается малыми буквами. |
Вывести в стандартный протокол информацию о версии команды nm. |
По умолчанию команда nm выводит полные имена об ектов. Но так как об ектные файлы могут содержать имена произвольной длины, то возможен сдвиг последующих колонок. Опция -T вызывает усечение длинных имен. При этом факт усечения отмечается звездочкой в последней позиции, отведенной под имя. |