Как проверить внутренние атрибуты общих объектов?

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

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

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

Есть ли такая утилита для Solaris?

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

elfdump libm.so.2 | moe

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

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

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


person Rob Wells    schedule 15.09.2009    source источник


Ответы (2)


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

person mark4o    schedule 15.09.2009
comment
mark4o, ура, но elfdump не дает мне именно то, что мне нужно. Однако просмотр вывода elfdump для данной системы .so дал мне утилиту, которая выглядит действительно полезной. Я отредактирую свой исходный вопрос. - person Rob Wells; 15.09.2009
comment
И, конечно же, братом lari и moe является crle для работы с системными путями запуска по умолчанию. - person alanc; 18.08.2012

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

person alanc    schedule 18.08.2012
comment
теперь, если бы вы только могли исправить ссылки, сломанные Oracle, на собственных сайтах Oracle (например, сообщение, на которое вы ссылались)... (спасибо за их исправление на SO кстати) - person mark4o; 18.08.2012
comment
Да, обрыв ссылок повсюду раздражает. Для этого сообщения вы можете увидеть elfedit( 1) справочная страница со справочных страниц Solaris 11 после выхода релиза и замените blogs.sun.com на blogs.sun.com в других ссылках. - person alanc; 19.08.2012