我想找到一些外部符号,由另一个共享库(.so)使用。我可以轻松跑
nm -D ./lib_the_one.so
并通过 grepping 获取使用的符号列表,例如“U”(未定义的符号):
U The_external_symbol
现在我想知道,在整个库“lib_the_one.so”中(静态)存在多少个符号的用法。更确切地说,
- 一些外部函数有多少直接调用
- 外部变量被引用多少次
例如,我想知道我的“lib_the_one.so”中有 10 个函数,其中调用了对calloc
它们的调用,还有 5 个函数调用了malloc
.
如何使用 nm、objdump 或任何其他实用程序 binutils(我的操作系统是 Linux)来做到这一点?