列出运行时加载的所有符号

时间:2012-08-28 06:19:22

标签: linux unix solaris

Windows有一个漂亮的工具 - Dependency Walker - 它列出了可执行文件中使用的所有符号以及加载它们的动态库。这对于了解缺失的符号非常有用。的DLL。

* nix / Solaris是否有类似的实用程序。虽然我们可以通过ldd和nm的组合找到它,但是单个工具将非常方便。

1 个答案:

答案 0 :(得分:0)

使用dbx附加到pid并使用funcs命令列出加载的符号。

$ dbx "-c funcs; quit "  /usr/bin/bash 4837

Reading bash
Reading ld.so.1
Reading libcurses.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libdl.so.1
Reading libc.so.1
Attached to process 4837
stopped in _waitid at 0xfee0af95
0xfee0af95: _waitid+0x0015:     jae      _waitid+0x21   [ 0xfee0afa1, .+0xc ]
`bash`_start
`bash`_mcount
`bash`__fsr
`bash`main
`bash`exit_shell
`bash`sh_exit
...
`libnsl.so.1`nis_sperror
`libnsl.so.1`nis_lerror
`libnsl.so.1`__nis_group_cache_stats
...
`libc.so.1`mmap64
`libc.so.1`_mmap64
`libc.so.1`_init
`libc.so.1`_fini
detaching from process 4837