Я работал над проектом Big C ++, который имеет огромный источник размером около 300 МБ и более 800 файлов. Я хочу получить стек вызовов при двоичных сбоях, поэтому я захватил сигнал и записал стек вызовов из backtrace_symbols в файл. Но чтобы получить имена символов из backtrace_symbols, я скомпилировал с флагом компоновщика ‘-rdynamic’. Я хочу знать, что использование ‘-rdynamic’ влияет на любые проблемы ..?
Я знаю, что это влияет на производительность,
Повлияет ли добавление опции -rdynamic linker на gcc / g ++ на производительность?
Но делает ли это
Значительно повлиять на производительность ..?
Это выставляет мой исходный код ..? [Я знаю, что не будет, я просто хочу быть уверен]
Влияет ли это на общую производительность во время выполнения или время запуска?
Каковы недостатки «Rdynamic» ..?
В: Но сильно ли это влияет на производительность?
A: Я использовал его в большом проекте без какой-либо деградации.
Q: Это выставляет Мой Исходный код ..?
A: Нет, это просто выставляет имена функций.
Q: Влияет ли это на общую производительность или время запуска?
A: По моему опыту, нет. Большинство функций уже экспортированы. Обычно это добавляет статические функции.
Q: Каковы недостатки «Rdynamic» ..?
A: rdynamic может использоваться с dlopen()
иметь общую / глобальную таблицу символов для исполняемого файла, которая была обязательна в моем проекте (dynamic_cast<> будет работать через ТАК границы). Недостатком является столкновение имени функции между SO.
Других решений пока нет …