给定函数标识符,是否有命令行程序或库函数提供存储在 elf 文件中的地址
given a function identifier, is there a command line program or a library function providing the address as stored in the elf file
我正在寻找一个命令或库函数,returns 一个函数的地址,与 addr2line 相反。
目前,我使用以下命令:
readelf -s ./a.out|grep "\<main\>"|uniq
> 451: 000000000001967f 148 FUNC GLOBAL DEFAULT 14 main
你也可以为此使用 gdb,info address
打印给定符号的地址,所以像这样的东西应该可以工作:gdb ./a.out -ex 'info address main'
你可以使用 libelf.
或者,此 和答案显示了如何执行 nm
的操作。
您可以轻松修改那里的代码以进行反向操作:遍历所有符号,直到找到正确的符号名称,然后 return 该符号的地址。
如果您需要对多个符号名称执行查找,您当然可以遍历所有符号一次,并构建一个 name
-> address
映射,因此后续查找很快。
我正在寻找一个命令或库函数,returns 一个函数的地址,与 addr2line 相反。
目前,我使用以下命令:
readelf -s ./a.out|grep "\<main\>"|uniq
> 451: 000000000001967f 148 FUNC GLOBAL DEFAULT 14 main
你也可以为此使用 gdb,info address
打印给定符号的地址,所以像这样的东西应该可以工作:gdb ./a.out -ex 'info address main'
你可以使用 libelf.
或者,此 nm
的操作。
您可以轻松修改那里的代码以进行反向操作:遍历所有符号,直到找到正确的符号名称,然后 return 该符号的地址。
如果您需要对多个符号名称执行查找,您当然可以遍历所有符号一次,并构建一个 name
-> address
映射,因此后续查找很快。