【发布时间】:2019-05-31 21:13:32
【问题描述】:
假设 nm 在库 utils 中报告了一个函数符号:
$ nm --defined-only utils.so
T function_symbol
是否可以确定该函数的签名(返回类型和参数)?或者至少是参数的数量和每个参数的大小?
【问题讨论】:
标签: linux shared-libraries ld nm
假设 nm 在库 utils 中报告了一个函数符号:
$ nm --defined-only utils.so
T function_symbol
是否可以确定该函数的签名(返回类型和参数)?或者至少是参数的数量和每个参数的大小?
【问题讨论】:
标签: linux shared-libraries ld nm
可以从 DWARF 调试信息中获取此信息。但是如果调试信息不可用(因为它已经被剥离或者不是在编译过程中首先生成),这是不可能的。 ELF 对象不包含此信息。
对于 C++ 函数符号,mangling 显示了函数参数的类型,但即使在那里,也缺少函数结果的类型,所以图片仍然不完整。
【讨论】: