海湾合作委员会/小精灵-从哪里来我的符号?
题
有一个可执行的动态相联系的数量共享的对象。我怎么能确定,他们中的一些符号(进口成为可执行)所属的?
如果有一个以上的可能性,我可以silmulate ld看看从那里正在拍的?
解决方案
看看 纳米(1), objdump(1) 和 elfdump(1).
其他提示
除了的那些查理提到的, “ LDD ” 可能做一些你在找什么。
如果你能重新链接可执行文件,最简单的方法,找出引用和定义来自使用ld
-y
标志。例如:
$ cat t.c
int main() { printf("Hello\n"); return 0; }
$ gcc t.c -Wl,-yprintf
/lib/libc.so.6: definition of printf
如果您不能重新链接的可执行文件,然后在其上运行ldd
,然后在按顺序列出的所有库运行'nm -D'
,并grep
你感兴趣的符号。
$LD_DEBUG=bindings my_program
这将打印在控制台上的所有符号绑定。
不隶属于 StackOverflow