Как я могу проверить внутренние атрибуты общих объектов? - PullRequest
2 голосов
/ 15 сентября 2009

При использовании HP-UX я могу использовать утилиту chatr, чтобы сообщать о различных внутренних атрибутах общей библиотеки. Это также позволит мне изменить внутренние атрибуты общих библиотек, которые я создал.

Утилита chatr может сообщать и, в некоторых случаях, изменять такие вещи, как:

  1. поведение привязки во время выполнения,
  2. список путей встроенной библиотеки, созданный во время сборки,
  3. подвергается ли библиотека поиску путей во время выполнения,
  4. внутренние имена,
  5. и т. Д. И т. П.

Доступна ли такая утилита для Solaris?

Редактировать: Чокнутый! Благодаря ответу mark4o, приведенному ниже, я пересмотрел вывод elfdump для типичной системы .so (libm.so.2 в Sol 10). Однако, и вот эта причудливая часть, я набрал команду для ввода:

elfdump libm.so.2 | moe

В результате удивительной интуитивной прозорливости это вернуло мне сообщение об использовании утилиты moe, чей раздел описания man-страницы гласит:

Утилита moe демонстрирует оптимальное расширение имени пути, содержащего зарезервированные токены компоновщика времени выполнения. Эти токены можно использовать для определения зависимостей, филиалов и путей выполнения в динамических объектах. Расширение этих токенов во время выполнения предоставляет гибкий механизм выбора объектов и путей поиска, которые лучше всего работают на этом компьютере.

Это поможет мне решить, почему libli.so.2 shlib не совместим на обеих двух машинах, и мой неполный исполняемый файл не может быть запущен на одном сервере.

Ответы [ 2 ]

2 голосов
/ 18 августа 2012

Начиная с Solaris 11 (и некоторых выпусков OpenSolaris & Solaris Express, предшествующих ему, но не Solaris 10 или более ранних версий), теперь существует elfedit для изменения путей выполнения и аналогичных атрибутов.

2 голосов
/ 15 сентября 2009

Для отображения информации см. Утилиты Solaris elfdump и pvs. Для отладки проблем связывания могут также помочь lari и moe. Однако эти утилиты не имеют возможности изменять библиотеку.

...