valgrind / callgrind:什么是`_dl_runtime_resolve_xsave`

问题描述 投票:3回答:1

我目前正在尝试分析和调试我正在使用的库的性能问题。出于这个原因,我写了一个简短的C++代码,它将使用该库的一些核心功能并在其上运行一个简单的计时器。

为了更深入地潜水,我现在开始使用带有--tool=callgrind选项的valgrind。我使用kcachegrind可视化结果。我以前做过这个,并且(原则上)知道这是如何工作的。

但是,我很惊讶地看到这样的模式:

main
  |
myfunc()
  |
_dl_runtime_resolve_xsave

在此之后,调用图只是停止,即使我可以在列表中看到更多的低级函数。

我相信调用图的这种结构可能与使用多处理的库有关,我之前没有使用过valgrind。但是,使用谷歌,我无法找到这个特定函数调用的解释。

有人可以向我解释我在这里看到的内容,以及为什么调用图在这个函数调用时看似断开?

multiprocessing valgrind callgrind
1个回答
2
投票

我认为当您将共享库加载到程序中时会调用那些“_dl_runtime_resolve *”函数。我通常会在每个库函数中看到其中一个函数,只调用一次或两次。我会忽略它们。

© www.soinside.com 2019 - 2024. All rights reserved.