Поделиться через


/SECTION (указание атрибутов секции)

/SECTION:name,[[!]{DEKPRSW}][,ALIGN=#]

Заметки

Параметр /SECTION изменяет атрибуты секции, переопределяя атрибуты, заданные при компилировании OBJ-файла для секции.

Секции в переносимых исполняемых файлах (PE) в общих чертах подобны сегментам или ресурсам в новых исполняемых файлах (NE). Секции содержат код или данные. В отличие от сегментов секции представляют собой блоки непрерывной памяти без ограничения размеров. Некоторые секции содержат код или данные, объявляемые и используемые программой непосредственно, тогда как другие секции данных создаются компоновщиком и диспетчером библиотек (lib.exe) и содержат сведения, необходимые для операционной системы. Дополнительные сведения о NE-файлах см. в статье базы знаний "Формат заголовка исполняемого файла" (Q65122). Статьи базы знаний можно найти в библиотеке MSDN или в https://support.microsoft.com.

Перед именем name секции следует указывать двоеточие (":"). Имя name задается с учетом регистра.

Не следует использовать имена, список которых приведен ниже, поскольку они конфликтуют со стандартными именами. Например, имя .sdata используется на платформах RISC.

  • .arch

  • .bss

  • .data

  • .edata

  • .idata

  • .pdata

  • .rdata

  • .reloc

  • .rsrc

  • .sbss

  • .sdata

  • .srdata

  • .text

  • .xdata

Для секции можно задать один или несколько атрибутов. Знаки атрибутов, приведенные ниже, нечувствительны к регистру. Следует задавать все атрибуты, которые должна иметь секция; если какой-либо знак атрибута не указан, то его бит будет отключен. Если не указан атрибут R, W или E, то существующее состояние чтения, записи или исполнения остается неизмененным.

Чтобы инвертировать атрибут, укажите перед его символом восклицательный знак ("!"). Значения знаков атрибутов приведены в следующей таблице.

Знак

Атрибут

Значение

E

Выполнение

Секция является выполняемой

R

Read

Допускаются операции чтения данных

W

Запись

Допускаются операции записи данных

S

Shared

Секция совместно используется всеми процессами, загружающими образ

D

Выгружаемая

Секция помечается как выгружаемая

K

Кэшируемая

Секция помечается как некэшируемая

P

Со страничной организацией

Секция помечается как секция без страничной организации

Символы K и P отличаются от остальных: соответствующие им флаги секции имеют обратный смысл. Если один из них указан в секции .text (/SECTION:.text,K), то при выполнении DUMPBIN с параметром /HEADERS разницы во флагах секции не будет, поскольку секция уже кэширована неявно. Чтобы удалить эту установку по умолчанию, следует указать параметр /SECTION:.text,!K; тогда программа DUMPBIN будет использовать характеристики раздела, включая характеристику "Некэшируемая".

Секция в PE-файле, для которой не установлен атрибут E, R или W, вероятно, является недопустимой.

С помощью параметра ALIGN*=#* можно задать значение выравнивания для конкретной секции. Дополнительные сведения см. в разделе /ALIGN.

Установка данного параметра компоновщика в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Задание свойств проекта C++.

  2. Выберите папку Компоновщик.

  3. Выберите страницу свойств Командная строка.

  4. Введите параметр в поле Дополнительные параметры.

Установка данного параметра компоновщика программным способом

См. также

Ссылки

Настройка параметров компоновщика

Параметры компоновщика