Windows有一个漂亮的工具 - Dependency Walker - 它列出了可执行文件中使用的所有符号以及加载它们的动态库。这对于了解缺失的符号非常有用。的DLL。
* nix / Solaris是否有类似的实用程序。虽然我们可以通过ldd和nm的组合找到它,但是单个工具将非常方便。
答案 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