我想找到一些外部符号,由另一个共享库(.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或任何其他util binutils(我的操作系统是Linux)?
1 回答
你可以在每个符号上使用
objdump
和grep
,它应该给你一个符号被引用的次数,这里我从两个不同的函数调用malloc
两次:注意:忽略第一个是plt条目 .