valgrind / callgrind:什么是`_dl_runtime_resolve_xsave`

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了valgrind / callgrind:什么是`_dl_runtime_resolve_xsave`相关的知识,希望对你有一定的参考价值。

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

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

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

main
  |
myfunc()
  |
_dl_runtime_resolve_xsave

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

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

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

答案

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

以上是关于valgrind / callgrind:什么是`_dl_runtime_resolve_xsave`的主要内容,如果未能解决你的问题,请参考以下文章

valgrind的callgrind工具进行多线程性能分析

是否有工具可以检查两个 callgrind/valgrind 配置文件的差异?

valgrind/callgrind 可以在发布的可执行 C++ 程序上工作吗?

valgrind 使用入门

如何使用 KCachegrind 和 Callgrind 仅测量我的部分代码?

性能分析