如何从 libmlx5-rdmav2.so 获取符号信息?

How to get symbol info from libmlx5-rdmav2.so?

我正在使用 Vtune 分析我的程序。 Vtune 报告说

Function                      Module              CPU Time  % of CPU Time(%)
----------------------------  -----------------  ---------  ----------------
func@0x23dc0                  libmlx5-rdmav2.so  1779.256s             50.4%
__memmove_avx_unaligned_erms  libc.so.6           798.907s             22.6%
pollOnce                      io500               300.626s              8.5%
RpcClient::do_get             io500               284.459s              8.1%
ibv_poll_cq                   io500               179.388s              5.1%

我希望知道func@0x23dc0 libmlx5-rdmav2.so里面有什么。 我该怎么办?

获取符号的一种方法是编译您自己版本的 libibverbs 库及其提供程序驱动程序。上游版本的源代码位于 https://github.com/linux-rdma/rdma-core.

此外,一些 Linux 发行版(例如 Ubuntu, RedHat)拥有用于调试其库符号的存储库。

最后,请注意,在许多轮询应用程序中,探查器可能不会告诉您您想知道的内容,因为它们不断调用轮询函数,无论它们是否产生输出。