我正在分析 linux 平台(redhat)上的一个大型 C++ 项目,特别是其中使用的共享库。如何从特定的共享库中找到该项目中使用了哪些符号(函数/变量)?
首先,我在我的二进制文件上运行了以下命令:
readelf -d binaryName | grep -i "Shared library"
我得到了在我的项目中使用的共享库列表(ldd 显示更长的列表,因为这些共享库也有自己的依赖项)例如
0x0000000000000001 (NEEDED) Shared library: [librt.so.1]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libuv.so.1]
0x0000000000000001 (NEEDED) Shared library: [libssl.so.1.1]
0x0000000000000001 (NEEDED) Shared library: [libcrypto.so.1.1]
0x0000000000000001 (NEEDED) Shared library: [libz.so.1]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
现在有一种方法可以找出libuv.so.1
项目代码库中使用了哪些符号。任何人都可以提出一些路线图吗?