了解Delphi MAP文件 [英] Understanding Delphi MAP File

查看:290
本文介绍了了解Delphi MAP文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的测试项目中的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆