valgrind / callgrind: что такое `_dl_runtime_resolve_xsave` - PullRequest
0 голосов
/ 26 июня 2018

В настоящее время я пытаюсь проанализировать и отладить проблемы производительности используемой библиотеки.По этой причине я написал короткий код C++, который использовал бы некоторые основные функции этой библиотеки и запустил простой таймер.

Для более глубокого погружения я теперь начал использовать valgrindс опцией --tool=callgrind.Я визуализирую результаты, используя kcachegrind.Я делал это раньше и знаю (в принципе), как это работает.

Однако, я был очень удивлен, увидев такую ​​схему:

main
  |
myfunc()
  |
_dl_runtime_resolve_xsave

После этого граф вызовов простоостанавливается, хотя я могу показать в списке гораздо больше низкоуровневых функций.

Я считаю, что эта структура графа вызовов может быть связана с библиотекой, использующей многопроцессорность, для которой я раньше не использовал valgrind,Однако, используя Google, я не смог найти объяснения этому конкретному вызову функции.

Может кто-нибудь объяснить мне, что я здесь вижу, и почему график вызовов, по-видимому, отключен при вызове этой функции?

1 Ответ

0 голосов
/ 01 сентября 2018

Я думаю, что эти функции _dl_runtime_resolve * вызываются, когда вы загружаете разделяемую библиотеку в свою программу. Я обычно вижу один из них в каждой библиотечной функции, вызываемый только один или два раза. Я бы просто проигнорировал их.

...