.text 和 .itext 内存段有什么区别?

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

当我编译我的 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 section table docs 时,只有“.text”和除“.itext”之外的其他部分列在那里。

“.itext”段的用途是什么?它与“.text”有何不同?是 Delphi/Borland/Embarcadero-specific 扩展名吗?

itext 段(Class = ICODE)类似于链接单元的初始化部分。