Операционная система UNIX. Руководство программиста

Поле номера секции


Ниже перечислены допустимые номера секций:

Обозначение Номер секции Смысл
N_DEBUG -2 Специальное имя для символьной отладки
N_ABS -1 Абсолютное имя
N_UNDEF 0 Неопределенное внешнее имя
N_SCNUM 1-077777 Номер той секции, в которой имя определяется

Специальный номер секции -2 применяется для имен, используемых при символьной отладке. Таковы имена, отмечающие начало структуры, объединения или перечисления; определения типов; имена файлов. Номер секции -1 отмечает имена, имеющие ненастраиваемые значения. Такими именами являются, в частности, автоматические и регистровые переменные, аргументы функций и специальные имена .eos.

За единственным исключением, нулевой номер секции используется для настраиваемых внешних имен, не определенных в данном файле. Единственное же исключение - это повторно определяемое внешнее имя (например, COMMON-блок Фортрана или же неинициализированная переменная, определенная в функции языка C как внешняя). В таблице имен каждого файла, в котором определено такое имя, в поле номера секции соответствующего элемента помещается 0, а в поле значения - положительное число, равное размеру данных для этого имени. Когда же эти файлы объединяются для получения выполняемого объектного файла, редактор внешних связей из всех таких одинаковых входных имен строит одно имя, с номером секции неинициализированных данных. Максимальный размер данных для всех таких входных имен используется при отведении места под данные для выходного имени. Значением выходного имени становится соответствующий виртуальный адрес. Таков единственный случай, когда имя имеет нулевой номер секции и ненулевое значение.



Содержание раздела