Как в GCC узнать кто ссылается на конкретный символ
Я пишу на Си и С++ под микроконтроллеры STM32. Когда проект слишком разрастается я смотрю какие символы занимают место при помощи команды:
readelf -s -W build/my-programm.elf | sort -n -k 3,3
Но иногда она выдаёт мне символы, которые я совершенно не использую. Но они занимают место и много.
Я вижу два варианта решения данной проблемы:
- Узнать кто вызывает указанный символ при помощи статического анализатора. Профилировщики не предлагать, поскольку код выполняется на микроконтроллере.
- Насильно удалить данный символ из результатов компиляции и тогда я узнаю кто его использует по ошибкам во время компоновки.
Если кто знает другое решение данной проблемы, рассмотрю любые варианты.
Источник: Stack Overflow на русском