Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between .text and .itext memory segments?

When I compile my Delphi project and instruct the compiler to create a memory mapping file (*.map) it contains a description of the used memory segments at the top of the file.

Example:

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

When looking at the PE section table docs only ".text" and the other sections except for ".itext" is listed there.

What is the purpose of that ".itext" segment and how does it differ from ".text"? Is it some Delphi/Borland/Embarcadero-specific extension?

like image 955
blerontin Avatar asked Oct 18 '19 09:10

blerontin


1 Answers

The itext segments (with Class = ICODE) resemble the initialization sections of the linked units.

like image 192
Uwe Raabe Avatar answered Sep 29 '22 11:09

Uwe Raabe