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

如何解析EABI格式.out文件并提取符号相关信息?

解析EABI格式.out文件符号信息的实用方法

readelf的平台兼容性

  • readelf并非Linux专属,它是GNU Binutils工具集的核心组件之一。Windows环境下可以通过MinGW、WSL安装使用;嵌入式开发场景中,交叉编译工具链(比如ARM的arm-none-eabi-系列)通常会自带对应架构的readelf(如arm-none-eabi-readelf),专门处理EABI格式的二进制文件。

提取符号信息的正确命令

你提到的--debug-dump=info是用于导出调试信息段的,和符号表不是同一概念。要获取符号的名称、地址、类型及字节大小,直接使用符号表查看选项即可:

基础命令

  • 针对本机架构的.out文件:
readelf -s your_file.out
  • 针对嵌入式交叉编译生成的EABI文件(比如ARM平台),需使用对应工具链的readelf:
arm-none-eabi-readelf -s your_file.out

输出字段对应关系

命令输出的表格中,关键字段对应你需要的信息:

  • Value:符号的内存地址
  • Size:符号的字节大小(函数、数据对象会显示实际大小,NOTYPE类型符号通常为0)
  • Type:符号类型(例如FUNC代表函数,OBJECT代表数据对象,NOTYPE代表未定义类型)
  • Name:符号名称

简化输出(仅保留所需字段)

如果想过滤掉无关内容,只保留目标字段,可以用awk处理:

readelf -s your_file.out | awk '{if(NR>4) print $1, $2, $4, $7, $8}'

(注:不同版本readelf的列索引可能略有差异,执行后可根据实际输出调整列数)

关于--debug-dump=info的补充说明

如果需要获取调试信息关联的细节(比如局部变量、自定义类型定义),才需要用到--debug-dump=info,但该命令输出内容非常冗长,一般不需要用来提取基础符号表信息:

readelf --debug-dump=info your_file.out

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:52:44