Я компилирую программу C с компилятором SPARC RTEMS C.Как получить места памяти библиотечных функций?
Использование опции Xlinker -M, я могу получить большую карту памяти с множеством вещей, которые я не узнаю.
Я также попытался использовать утилиту RCC nm, которая возвращает немного более читаемую таблицу символов. Я предполагаю, что местоположение, данное этой утилитой, например, printf, - это место, где printf находится в памяти, и что каждая программа, которая вызывает printf, достигнет этого места во время выполнения. Действительно ли это предположение?
Есть ли способ получить список мест для всех функций библиотеки/системы? Кроме того, когда связь выполняется, ссылается ли она только на функции, которые исполняемые вызовы или все функции в библиотеке? Мне кажется последним, учитывая количество вещей, которые я нашел в таблице символов и карте памяти. Могу ли я подключить только необходимые функции?
Благодарим за помощь.
Если я использую параметр -static для компоновщика, чтобы избежать использования разделяемых библиотек, это позволит избежать проблем, связанных с динамическими библиотеками? – mandaleeka
Какие проблемы? Я предполагаю, что у вас есть повторяющееся определение символа. В этом случае нет. Вы должны скрыть/переименовать, чтобы избежать столкновения имени. – dirkgently
Извините, я имел в виду, что nm даст мне точный ответ или адрес по-прежнему перемещается? – mandaleeka