You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LLD链接器mapfile格式说明文档及解析方法咨询

LLD生成的mapfile没有独立的官方格式说明,它的格式设计兼容GNU ld的mapfile标准,你可以按照通用的链接器mapfile规则进行解析。你提供的示例中各字段和结构的含义如下:

字段含义说明

表头共7个字段,对应含义如下:

  • VMA:虚拟内存地址,即段或符号在程序运行时的虚拟空间地址,以十六进制表示
  • LMA:加载内存地址,即段或符号在二进制文件中被加载到内存的实际地址,普通用户态程序下通常与VMA值相同
  • Size:段或符号占用的字节长度,十六进制表示
  • Align:段或符号的地址对齐字节数,十六进制表示
  • Out:输出段名称,即链接后最终二进制文件中的段名,如.interp、.rodata等
  • In:输入段来源,即构成输出段的输入文件对应段信息,格式为目标文件路径:(输入段名),其中<internal>代表该段为链接器自动生成
  • Symbol:具体符号名,只有对应到变量、函数等具体符号的行才会展示该字段
层级规则

mapfile通过缩进区分内容所属的层级,从高到低分为三级:

  1. 无缩进行:输出段的总览信息,记录整个输出段的总地址、总大小、对齐规则
  2. 一级缩进行:构成输出段的单个输入段信息,记录每个输入段的地址、大小、来源
  3. 二级缩进行:输入段内包含的具体符号信息,记录每个符号的地址、大小、名称
示例片段

你提供的mapfile片段如下:

VMA              LMA     Size Align Out     In      Symbol
      2002a8           2002a8       1d     1 .interp
      2002a8           2002a8       1d     1         <internal>:(.interp)
      2002c8           2002c8       20     4 .note.ABI-tag
      2002c8           2002c8       20     4         /opt/tiger/typhoon-blade/gccs/x86_64-x86_64-gcc-830/sysroot/usr/lib/../lib64/crt1.o:(.note.ABI-tag)
      2002e8           2002e8     24c0     8 .dynsym
      2002e8           2002e8     24c0     8         <internal>:(.dynsym)
      2027a8           2027a8      310     2 .gnu.version
      2027a8           2027a8      310     2         <internal>:(.gnu.version)
      202ab8           202ab8      170     4 .gnu.version_r
      202ab8           202ab8      170     4         <internal>:(.gnu.version_r)
      202c28           202c28       24     8 .gnu.hash
      202c28           202c28       24     8         <internal>:(.gnu.hash)
      202c4c           202c4c      c48     4 .hash
      202c4c           202c4c      c48     4         <internal>:(.hash)
      203894           203894     2c20     1 .dynstr
      203894           203894     2c20     1         <internal>:(.dynstr)
      2064b8           2064b8     9d50     8 .rela.dyn
      2064b8           2064b8     9d50     8         <internal>:(.rela.dyn)
      210208           210208     21f0     8 .rela.plt
      210208           210208     21f0     8         <internal>:(.rela.plt)
      212400           212400     b7b7    16 .rodata
      212400           212400        8     4         <internal>:(.rodata)
      212410           212410      262    16         build64_release/version.cpp.o:(.rodata)
      212410           212410        4     1                 kSvnInfoCount
      212420           212420      1e5     1                 kSvnInfo
      212605           212605        e     1                 kMainInfo
      212613           212613        8     1                 kBuildType
      212620           212620       19     1                 kBuildTime
      212640           212640       10     1                 kBuilderName
      212650           212650        d     1                 kHostName
      212660           212660       11     1                 kCompiler
      212671           212671        1     1                 kScmVersion
      212680           212680       80    16         <internal>:(.rodata)
      212700           212700     4bea     1         <internal>:(.rodata)
      2172ec           2172ec       18     4         build64_release/cpputil/json/libjson.a(json_params.cpp.o):(.rodata._ZNK9rapidjson12GenericValueINS_4UTF8IcEENS_12CrtAllocatorEE6AcceptINS_6WriterINS_19GenericStringBufferIS2_S3_EES2_S2_S3_EEEEbRT_)
      217304           217304       18     4         build64_release/cpputil/json/libjson.a(json_params.cpp.o):(.rodata._ZNK9rapidjson12GenericValueINS_4UTF8IcEENS_12CrtAllocatorEE6AcceptINS_12PrettyWriterINS_15FileWriteStreamES2_S2_S3_EEEEbRT_)
      21731c           21731c       84     4         build64_release/cpputil/json/libjson.a(json_params.cpp.o):(.rodata._ZN9rapidjson13GenericReaderINS_4UTF8IcEES2_NS_12CrtAllocatorEE10ParseValueILj0ENS_19GenericStringStreamIS2_EENS_19GenericDocumentLiteIS2_S3_S3_EEEEvRT0_RT1_)

如果需要编写自动化解析脚本,可根据行首的缩进量判断内容层级,再按空格分割提取对应字段即可。需要注意部分字段之间可能存在多个连续空格,分割时需要做去重处理。

内容的提问来源于stack exchange,提问作者Heyi Sun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:36:02