Friday, July 10, 2009

valgrind, dlopen and debug info

Столкнулся сегодня с проблемой, что KCachegrind не отображает отладочную информацию для некоторых модулей.

Покопавшись в интернетах наткнулся на этот баг (valgrind doesn't output debug info with dlopen'ed libraries ) и вспомнил, что модули у нас загружаются динамически.

Как сказано в последнем сообщение это все таки баг:
The bug is still there.
I did some debugging with Julian and we came to the conclusion that the problem is with chroot() after dlopen'ing the library.


Я проверил код, но явно chroot нигде не вызывается.

Полез искать дальше и наткнулся на следующий баг (Debug info is lost for .so files when they are dlclose'd ). Что навело меня на мысль не выгружать модули.

И на самом деле помогло.

Так, что если модули активно не загружаются и не выгружаются для профилирования можно отключить выгрузку модулей. Ну или пофиксить valgrind.

0 comments: