Нет символов для массива valgrind dlclose()

массив не показывает никаких имен функций для функций, которые находятся в библиотеке, и эта библиотека закрывается dlclose().

Если я удалю dlclose() и запущу программу перекомпиляции и выполнения, я увижу символы. Есть ли способ узнать имена функций без изменения исходного кода?


person MJM101    schedule 15.10.2018    source источник
comment
Пожалуйста, добавьте код, чтобы мы могли увидеть, в чем может быть проблема.   -  person David Baak    schedule 15.10.2018
comment
Возможный дубликат Почему массив valgrind не сообщает любые имена функций или ссылки на код?   -  person Paul Floyd    schedule 15.10.2018
comment
Да. Подобно вопросу, упомянутому @PaulFloyd. Но моя проблема здесь, я не могу изменить и перестроить код. Итак, есть ли способ получить имена функций даже после dlclose(lib).   -  person MJM101    schedule 15.10.2018


Ответы (1)


В новой версии valgrind (3.14) есть опция, которая указывает valgrind сохранять символы библиотек dlclose'd:

--keep-debuginfo=no|yes   Keep symbols etc for unloaded code [no]
                          This allows saved stack traces (e.g. memory leaks)
                          to include file/line info for code that has been
                          dlclose'd (or similar)

Однако массив не использует эту информацию.

Вы можете получить пригодный для использования профиль отчетов о куче, выполнив:

valgrind --keep-debuginfo=yes --:xtree-leak=yes

а затем визуализируйте память кучи, используя, например. kcachegrind.

person phd    schedule 15.10.2018
comment
Пробовал версию 3.14. Я использую valgrind --tool=massif --keep-debuginfo=yes и по-прежнему не вижу никаких символов в отчете о массиве. Massif (и, в более общем смысле, выходной формат xtree Massif) не использует заархивированную отладочную информацию. Только Memcheck был (несколько) протестирован с параметром --keep-debuginfo=yes, поэтому другие инструменты могут иметь неизвестные ограничения. - person MJM101; 16.10.2018
comment
@ManjunathaM: по сути, массив не использует эту информацию. Я отредактировал ответ, чтобы уточнить, и предложил посмотреть профиль кучи с отчетом об утечке memcheck xtree. - person phd; 17.10.2018