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

能否使用nm命令查看目标文件中函数的输入参数?

结论:nm无法单独实现获取函数输入参数的需求

nm的设计目标是读取目标文件的符号表信息,而常规ELF/PE等格式的目标文件符号表本身不存储函数参数、返回值类型这类元信息,因此nm的所有参数都不可能实现这个需求,和你查阅文档的结果一致。

不同场景下的替代实现方式

  • 如果目标文件是开启调试信息编译的(编译时加了-g参数,未被strip处理)
    可以通过读取调试段信息获取参数:
    • 用objdump --dwarf=info <目标文件路径> 搜索对应函数名的条目,可直接查看到完整的参数列表、返回值类型
    • 也可使用readelf -w <目标文件路径>实现同样的效果
  • 如果是未strip的C目标文件/动态库
    C
    的函数符号默认会做名称修饰(Name Mangling),修饰后的符号本身包含参数类型信息,你可以组合使用nm和c++filt拿到参数:
    1. 用nm <目标文件路径>拿到对应函数的修饰后符号名
    2. 执行c++filt <修饰后符号名>,解析后的结果会直接展示完整函数签名,包含参数列表
  • 如果是无调试信息的C语言目标文件,且已经被strip处理
    这种场景下目标文件内没有存储任何和函数参数相关的信息,无法通过常规工具直接提取,只能结合头文件或者反汇编分析调用约定推导参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:30:05