了解Delphi MAP文件 [英] Understanding Delphi MAP File
问题描述
这是我的测试项目中的MAP文件示例...
Here is the sample of MAP file from my test project...
.......
.......
.......
0001:001EFC14 00000020 C=CODE S=.text G=(none) M=Vcl.CategoryButtons ACBP=A9
0001:001EFC34 0000284C C=CODE S=.text G=(none) M=Vcl.SysStyles ACBP=A9
0001:001F2480 000407A8 C=CODE S=.text G=(none) M=Vcl.Styles ACBP=A9
0001:00232C28 00006998 C=CODE S=.text G=(none) M=MainU ACBP=A9
0002:00000000 000000B4 C=ICODE S=.itext G=(none) M=System ACBP=A9
0002:000000B4 00000008 C=ICODE S=.itext G=(none) M=SysInit ACBP=A9
.....
.....
我的单元(MainU)从00232C28到00006998。到此处,内存地址前缀为0001。从下一个单元开始,它开始于0002,依此类推。
My Unit (MainU) resides from 00232C28 to 00006998. Upto here, the memory address prefix with 0001. Starting from the next unit, it begins 0002 and so on.
这是什么意思?
还有什么是'C =','S ='' G =''M ='和'ACBP ='?
As well, what is 'C=', 'S=' 'G=' 'M=' and 'ACBP = '?
推荐答案
格式为:
SegmentId:StartAddress长度C = SegmentClass S = SegmentName G = SegmentGroup M = ModuleName
ACBP
与对齐方式有关,但我不能告诉您十六进制数的含义。
The ACBP
has something to do with alignment but I can't tell you what the hex numbers mean.
C = CODE
:代码段
C = ICODE
:初始化代码段
C = DATA
:(已初始化)数据段
C = BSS
:(未初始化)数据段
C = TLS
:线程本地存储
C=CODE
: Code-Segment
C=ICODE
: Initialization Code-Segment
C=DATA
: (initialized) Data-Segment
C=BSS
: (uninitialized) Data-Segment
C=TLS
: Thread Local Storage
G = (无)
:无细分组
这篇关于了解Delphi MAP文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!