标签: c linux elf
我正在寻找一个返回函数地址的命令或库函数,与addr2line相反。
目前,我使用以下命令:
readelf -s ./a.out|grep "\<main\>"|uniq > 451: 000000000001967f 148 FUNC GLOBAL DEFAULT 14 main
答案 0 :(得分:1)
你也可以使用gdb,info address打印给定符号的地址,所以这样的东西应该有效:gdb ./a.out -ex 'info address main'
info address
gdb ./a.out -ex 'info address main'
答案 1 :(得分:1)
您可以使用libelf。
或者,此question和答案会显示如何执行nm所做的事情。
nm
您可以轻松修改其中的代码以反向:迭代所有符号,直到找到正确的符号名称,然后返回该符号的地址。
如果您需要对多个符号名称执行查找,您当然可以迭代所有符号一次,并构建name - &gt; address地图,因此后续查找速度很快。
name
address