Символизация стеков
Белуга 0.7.3 · документация разработчика
Содержание главы
- От адресов к функциям
- Инлайны
- Статические бинарники
От адресов к функциям
Сырой профиль хранит адреса. Символизация восстанавливает
файл:строка по таблицам символов процесса и разделяемых библиотек.
Для этого нужен доступ к тем же бинарникам, что работали в момент съёма
(иначе адреса «уедут» вместе с ASLR и версией).
Инлайны
Инлайновые кадры восстанавливаются по DWARF. Отсутствие debug-информации не
ломает символизацию — вы получите func+0x1f без строк, но стек
останется связным. Debug-пакеты (или -g в сборке) добавляют
строки и точные имена инлайнов.
Примечание. Для Go-процессов стеки уже символизированы
рантаймом; для C/C++/Rust используется описанная процедура.
Статические бинарники
Статически слинкованные процессы символизируются по своему же образу:
Белуга читает /proc/pid/maps и применяет таблицы символов самого
бинарника. Отдельные действия не требуются, но версия бинарника должна
совпадать с запущенной.