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

ble*_*tin 7 windows delphi portable-executable

当我编译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
Run Code Online (Sandbox Code Playgroud)

查看PE节表时,列出 “ .text”和“ .itext”以外的其他节。

该“ .itext”段的目的是什么,它与“ .text”有什么区别?它是Delphi / Borland / Embarcadero的特定扩展吗?

Uwe*_*abe 3

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