Callgrind не видит источник в динамически загруженной SO

Я пытаюсь запустить KCacheGrind для некоторых результатов callgrind. По сути, кодовая база — это контейнер плагинов, который запускает общий объект для запуска определенной функции. После использования Callgrind для профилирования этого приложения я могу видеть затраты на функциональном уровне, но не на уровне источника.

Я могу увидеть на исходном уровне код контейнера плагина, прежде чем он запустит SO, но я не вижу никакого кода, содержащегося в SO, который был запущен.

Я знаю, что я компилирую с включенными символами отладки, но по какой-то причине я не могу увидеть динамически загруженный исходный код SO.

Спасибо,

1

Решение

Я столкнулся с этой проблемой тоже. Способ исправить это — остановить хост-приложение от выгрузки плагинов до его выхода. В моем случае я пытался профилировать модули C для Lua, а Lua выгружал модули при нормальном выходе из виртуальной машины. Для решения этой проблемы у меня был скрипт os.exit () для принудительного завершения работы.

Либо отключите выгрузку плагина в контейнере плагина, либо создайте плагин, который позволяет принудительно завершить приложение (вызывая _exit (0)).

2

Другие решения

Других решений пока нет …