Я пытаюсь использовать Инструменты Google Performance, в частности, официальный выпуск в 64-битном репозитории Ubuntu 14.04 для отладки приложения и связанного с ним .so
библиотека.
Бег с минимальными изменениями, просто обеспечение -g
установлен, получает мне след, но только несколько символов из основного исполняемого файла. Добавление ProfilerRegisterThread()
к потокам в библиотеке, как предлагается в довольно минимальная документация на самом деле все становится еще хуже: выводится еще меньше символов, только шестнадцатеричные адреса.
Как правильно профилировать потоки в библиотеках?
pprof использует addr2line для преобразования адреса в символ. addr2line не будет работать, если ASLR включен. Попробуйте отключить ASLR.
Другая возможность — реализовать интерфейс сервера HTTP для pprof и использовать что-то вроде libbacktrace для реализации разрешения адреса к символу.
Других решений пока нет …