АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

abicheck - Интернет в облаке

Запустите abicheck в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда abicheck, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


abicheck - проверять двоичные файлы приложений на вызовы частных или развивающихся символов в
библиотеки и для статической компоновки некоторых системных библиотек.

СИНТАКСИС


Abicheck [-h] [-k] [-a] [-I] [-v] [-f файл списка] [-или же Outfile] [-п шаблон] [-е шаблон] [-j
нджобс] [-л библиотека] [-Л ldpath] [(-s | -S) файл БД] [(-d | -D) файл БД] [-О файл БД] [-А
файл списка] файлов

ОПИСАНИЕ


Abicheck запускается в двоичных файлах приложения и выдает предупреждения при любом из следующих
Обнаружены три условия:

· Частный символ Применение. Частные символы - это функции или переменные данных в библиотеке.
пакет, который является внутренним для этого пакета. Они используются библиотеками в пакете
для внутренней коммуникации и не являются частью API / ABI, которые разработчики приложений
следует использовать.

· Развивающиеся символ Применение. Развивающиеся символы - это функции или переменные данных в библиотеке.
пакет, предназначенный для использования разработчиком, но помеченный как "развивающийся" или
«нестабильны» в том смысле, что они могут стать несовместимыми или исчезнуть в более позднем выпуске
пакета библиотеки.

· статический связывание. Статическая компоновка системных библиотек (например, libc.a) в
приложение, как правило, не является хорошей идеей, потому что код системной библиотеки, который он "блокирует"
двоичный файл приложения может стать несовместимым с более поздними версиями системы. Abicheck
пытается обнаружить статическое связывание нескольких системных библиотек.

По умолчанию для каждого проверенного двоичного объекта проверяются прямые вызовы от этого объекта.
только бинарный объект. В -l опция позволяет библиотекам, которые вводит двоичный объект, иметь
их звонки также проверены.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Поддерживаются следующие варианты:

-k Продолжайте проверять двоичные файлы, даже если есть серьезные ошибки (отчеты динамического компоновщика
неразрешенные символы, LDD(1) отказы, символы не обнаружены).

-h Распечатайте длинную форму справки.

-v Подробный. Распечатайте дополнительную информацию.

-f список
Ассоциация список - это файл, содержащий список проверяемых двоичных объектов, по одному в каждой строке.
Этот список добавляется к любым файлам, указанным в качестве аргументов в командной строке. Если
список "-", тогда используется стандартный ввод.

-o Outfile
Записать вывод в Outfile вместо stdout.

-p описания
Измените шаблон имени версии, присвоив метку частным наборам версий. По умолчанию
/частный/ с использованием совпадений без учета регистра.

Если компонент регулярного выражения описания содержит два двоеточия подряд: patt1 :: patt2,
тогда сопоставление на уровне символов будет активировано проверкой того, версия :: символ or
библиотека :: символ спички описания (где имя символа, версия (если есть) и
базовое имя библиотеки заменяется на символ, версиякачества библиотека). К примеру,

-p 'FOO_VERS. * :: _ foopriv'
or
-p 'libfoo.so. * :: _ foopriv'

-e описания
Такой же как -p но для «развивающихся» интерфейсов.

-L ldpath
Установить LD_LIBRARY_PATH переменная среды для ldpath перед вызовом динамического
компоновщик. Использовать -L "" отключить LD_LIBRARY_PATH.

Если один из компонентов ldpath это строка "найти", тогда все разделяемые библиотеки
in файлов найдены, и их пути вставлены в место "поиска". Обратите внимание, что
заказ будет случайным.

-l библиотека
Добавьте базовое имя или полный путь к общей библиотеке библиотека в список
объекты, подлежащие проверке для совершения частных звонков. Этот вариант может встречаться более чем
один раз в командной строке и является аддитивным. По умолчанию только прямые звонки с
двоичный файл в системные библиотеки. В -l переключатель позволяет проверить
косвенные вызовы, например: app -> supportlib -> systemlib.

-a Просмотрите все двоичные файлы перед проверкой и соберите список всех общих
объекты. Возьмите базовое имя каждого найденного общего объекта и действуйте так, как если бы оно было
указано с -l option, а затем запустите проверки abicheck. Сюда,
вызовы от всех "внутренних" объектов приложения проверяются, а не только
прямые звонки. (Полезно, когда общие объекты не имеют своих зависимостей
записано.)

-I Игнорируйте разделяемые библиотеки при проверке, проверяйте только исполняемые файлы. Совместим с -a
библиотеки будут искать сначала, но потом не проверяться.

-d файл базы данных, -D файл базы данных
Укажите резервную базу данных символов плоского файла для динамического (общедоступного или частного)
тестовое задание. Эти классификации будут использоваться, если библиотека не версируется (т. Е.
классификации не существует в самой библиотеке). Использовать -D чтобы указать, что только
информация от файл базы данных должен быть использован. Строки в файл базы данных может быть одним из этих
формы:

библиотека | символ
библиотека | класс | символ
библиотека | FILE = путь

библиотека должен быть полный путь к указанной библиотеке (не может быть
базовое имя).

Первая форма отмечает символ как личное.

Вторая форма отмечает символ класс в котором класс может быть публичным, частным или
развивается.

Третья форма указывает файл путь должен открываться по запросу, когда библиотека is
впервые столкнулся. Файл путь содержит строки первых двух форм, кроме
библиотека поле. Третья форма - это ускорение, позволяющее избежать обработки многих классификаций.
строки для библиотек, которые никогда не встречались в прогоне.

-O файл базы данных
Укажите файл переопределения, чтобы изменить классификацию символов для динамического
(публичный или частный) тест. Формат файла переопределения такой:

библиотека | символ | класс

Библиотека может быть полным путем или базовым именем. Если библиотека "__SKIP__", символ
будет проигнорирован для любой библиотеки, в которой он находится. Класс может быть "общедоступным",
"частный", "развивающийся" или "удаленный". "Удаленный" класс имеет специальный регистр, что означает
символ был удален из библиотеки в каком-то выпуске. Символ «__ALL__» для
"удаленный" класс означает, что вся библиотека была удалена или нестабильна по иным причинам.
использовать.

Примеры:

libfoo.so.1 | __bar | частный
/lib/libxyz.so.1|баз|общедоступный
__SKIP__ | __fputwc_xpg5

Эти настройки отменяют любую классификацию внутри библиотеки (из библиотеки
управление версиями, доступное из пвс(1) и т. Д.).

-A список
Установите интересующие библиотеки ABI в библиотеки, перечисленные в список (полное
пути, по одному в строке). Будут проверяться только вызовы этих библиотек; все
другие вызовы библиотеки будут проигнорированы.

-s файл базы данных, -S файл базы данных
Укажите более обширные базы данных символов для теста статической компоновки. файл базы данных может быть
список файлов, разделенных запятыми. Если файл является статическим архивом (lib * .a), он
обрабатывается для извлечения символов. В противном случае это файл базы данных, состоящий из
строки символа формы | библиотека: модуль например:

shmat | /usr/lib/libc.a: shmsys.o
shmctl | /usr/lib/libc.a: shmsys.o
shmdt | /usr/lib/libc.a: shmsys.o
shmget | /usr/lib/libc.a: shmsys.o
...

Когда все символы в module.o определены в приложении, статическая компоновка
предполагается, что этот модуль (и соответствующий архив библиотеки). Использовать -S , чтобы указать,
что должен выполняться только статический тест ссылки.

Используйте -S Int выполнять только проверку статической ссылки и использовать внутреннюю базу данных.

Используйте -s никто or -S никто чтобы полностью пропустить проверку статической компоновки.

-j работа
Run работа параллельно как отдельные процессы. Подразумевает -k. В первую очередь предназначено для
машины с несколькими процессорами, на которых работа должно быть близко к количеству процессоров.
Выходные данные собираются в файлы tmp и сразу печатаются ближе к концу выполнения как
каждая работа заканчивается.

If работа равно "-", "обнаружить" или "n", тогда работа будет установлено число в зависимости от
количество процессоров на текущей машине (если это можно определить).

ОПЕРАНДЫ


Поддерживаются следующие операнды:

файлов Список бинарных объектов приложения для проверки.

ВЫВОД


Для каждой проблемы есть одна строка (может быть несколько проблем на каждый проверенный двоичный файл), которые
выглядят так:

Если проблем не обнаружено:
имя файла: ХОРОШО

Если используется частный символ:
имя файла: ЧАСТНЫЙ (библиотека:частная_версия) Private_sym

В случае развития использования символов:
имя файла: РАЗВИТИЕ (библиотека:развивающаяся_версия) evolution_sym

Если файл статически связан в библиотеке системного архива:
имя файла: STATIC_LINK (архив)

Если проверка файла была пропущена:
имя файла: ПРОПУСКАТЬ (причина)

При использовании удаленного класса в -O переопределить параметр файла, эти проблемы могут быть
найденный:

Если символ был удален из библиотеки в каком-то выпуске:
имя файла: DELETED_SYM: символ/библиотека

(библиотека будет «несвязанным», если символ не был привязан)

Если вся библиотека была удалена в каком-либо выпуске или по другим причинам нестабильна для
использование:
имя файла: НЕСТАБИЛЬНАЯ_LIB: имя-библиотека = путь к библиотеке

(путь к библиотеке может быть "файл не найден", если библиотека не может быть найдена)

Следующие ниже проблемы вызовут фатальную ошибку, если -k используется вариант:

Если динамический компоновщик не смог разрешить N символы, когда LDD -r был запущен:
имя файла: UNBOUND_SYMBOLS: N

Если динамический компоновщик не обнаружил динамических привязок:
имя файла: NO_BINDINGS

If LDD -r LD_DEBUG = файлы, привязки не удалось:
имя файла: LDD_ERROR

В последних трех случаях запускается LDD -r в двоичном файле для получения дополнительной информации о том, что
пошло не так (обратите внимание, что Abicheck работает LDD -r LD_DEBUG = файлы, привязки установленный). На некоторых
системы динамический компоновщик не будет обрабатывать программы SUID с LD_DEBUG набор (это обычно
приводит к NO_BINDINGS в Abicheck выход).

Обратите внимание: если вы запускаете abicheck в разделяемой библиотеке (например, libfoo.so),
и не был построен с -l Lib флаги для записи зависимостей библиотеки, затем "несвязанный
символов "очень вероятна. Мало что можно сделать, кроме восстановления
библиотеки или проверки двоичного файла приложения, которое использует библиотеку и использует -l возможность
абичек.

ВЫХОД статус


Возвращаются следующие значения выхода:

0 Ошибок и проблем не обнаружено.

1 Произошла фатальная ошибка.

2 Фатальных ошибок не было, но в некоторых двоичных файлах были обнаружены проблемы.

ПРИМЕЧАНИЯ


Проверяются только объекты ELF.

В -s -S -d и -O dbfiles символ '#' начинает строку комментария обычным образом.

Если только не используются пользовательские совпадения "::", предоставленные через -p or -e флаги, abicheck может
проверять только системные библиотеки, к которым применено управление версиями символов (т. е.
частная и / или развивающаяся информация, записанная для каждого символа в самой библиотеке).
Дополнительную информацию о версиях символов см. В «Руководстве по компоновщику и библиотекам Solaris».
книга ответов по URL-адресу http://docs.sun.com/ab2/coll.45.13 и Commands / Version-Script
раздел страницы информации о компоновщике GNU "ld".

Шаблоны сопоставления имен версий символов по умолчанию нечувствительны к регистру.
строки «частный» и «развивающийся» для частных и развивающихся случаев соответственно.

Нечетные имена файлов, содержащие символ одинарной кавычки или новую строку, будут пропущены; такой
символы мешают вызову команд через оболочку.

Для рекурсии каталогов используйте найдите(1) и либо соберите вывод в файл для использования с
домен -f вариант, или в трубе в переходном отверстии:

найти ... | abicheck -f - ...

Используйте abicheck онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad