В чем разница между сегментами памяти .text и .itext? - PullRequest
7 голосов
/ 18 октября 2019

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

Пример:

Start         Length     Name                   Class
0001:00401000 00475600H .text                   CODE
0002:00877000 00004998H .itext                  ICODE
0003:0087C000 00030410H .data                   DATA
0004:008AD000 00009170H .bss                    BSS
0005:00000000 00000278H .tls                    TLS

При просмотре таблицы документов раздела PE только ".text" и другие разделы, кроме ".itext", перечислены там.

Какова цель этого сегмента ".itext" и чем он отличается от ".text"? Это какое-то специфичное для Delphi / Borland / Embarcadero расширение?

1 Ответ

2 голосов
/ 18 октября 2019

Сегменты itext (с классом = ICODE ) напоминают секции инициализации связанных блоков.

...