我目前正在尝试分析和调试我正在使用的库的性能问题。出于这个原因,我编写了一个简短的C++
代码,它将使用该库的一些核心功能并在其上运行一个简单的计时器。
为了更深入地了解,我现在开始使用带有--tool=callgrind
选项的 valgrind。我使用kcachegrind
. 我以前做过,并且(原则上)知道这是如何工作的。
但是,看到这样的模式,我感到非常惊讶:
main
|
myfunc()
|
_dl_runtime_resolve_xsave
在此之后,调用图就停止了,尽管我可以在列表中看到更多的低级函数。
我相信调用图的这种结构可能与使用多处理的库有关,对此我之前没有使用过 valgrind。但是,使用谷歌,我无法找到这个特定函数调用的解释。
有人可以向我解释我在这里看到的内容,以及为什么调用图在这个函数调用中似乎断开了连接吗?