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

Ad


Значок OnWorks

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

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

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

ПРОГРАММА:

ИМЯ


abidiff - сравнить ABI файлов ELF

abidiff сравнивает двоичные интерфейсы приложений (ABI) двух разделяемых библиотек в ELF
формат. Он генерирует содержательный отчет, описывающий различия между двумя ABI.

Для получения подробного отчета об изменениях ABI, который включает изменения функций и переменных.
подтипы, две входные разделяемые библиотеки должны сопровождаться их отладочной информацией
in DWARF формат. В противном случае только ELF сообщаются символы, которые были добавлены или удалены.

ПРИЗЫВ


abidiff [параметры]

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


· --Помогите | -h

Вывести краткую справку о команде и выйти.

· --версия | -v

Вывести версию программы и выйти.

· --debug-info-dir1 | --d1 <ди-путь1>

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

Обратите внимание, что ди-путь должен указывать на корневой каталог, в котором отладочная информация
оформлен в виде дерева. В системах на базе Red Hat этот каталог
обычно / usr / lib / отладка.

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

· --debug-info-dir2 | --d2 <ди-путь2>

Подобно --debug-info-dir1, эта опция сообщает соблюдать где найти разделенную отладку
информация для вторая общая библиотека .

· --stat

Вместо того, чтобы отображать подробные различия ABI между первая разделяемая библиотека и
вторая общая библиотека, просто выведите краткую сводную статистику об этих различиях.

· --symtabs

Отображать только таблицы символов первая разделяемая библиотека и вторая общая библиотека.

· --deleted-fns

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

· --changed-fns

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

· --добавлено-fns

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

· --deleted-варс

В полученном отчете о различиях между первая разделяемая библиотека и
вторая общая библиотека, отображать только глобально определенные переменные, которые были удалены
от первая разделяемая библиотека.

· --changed-vars

В полученном отчете о различиях между первая разделяемая библиотека и
вторая общая библиотека, отображать только изменения в подтипах глобального
переменные, определенные в первая разделяемая библиотека

· --добавленные-вары

В полученном отчете о различиях между первая разделяемая библиотека и
вторая общая библиотека, отображать только те глобальные переменные, которые были добавлены (определены) в
вторая общая библиотека.

· --no-linkage-имя

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

· --no-show-locs
Не показывать информацию о том, где в второй общие библиотека соответствующие
тип был изменен.

· --no-unreferenced-символы

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

· - подавления | --суппр <путь к подавлению>

Используйте файл спецификации подавления, расположенный по адресу путь к подавлению. Обратите внимание, что это
опция может появляться в командной строке несколько раз; все подавление
затем учитываются файлы спецификаций.

· --уронить <регулярное выражение>

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

· --drop-fn <регулярное выражение>

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

· --drop-вар <регулярное выражение>

При чтении первая разделяемая библиотека и вторая общая библиотека Входные файлы ELF, drop
глобально определенные переменные, соответствующие регулярному выражению регулярное выражение.

· --хранить <регулярное выражение>

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

· --keep-фн <регулярное выражение>

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

· --keep-вар <регулярное выражение>

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

· - безвредный

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

· - безвредный

В отчете о различиях не отображайте вредные изменения. По умолчанию только вредоносные
изменения отображаются в отчете о различиях.

· --избыточный

В отчете о различиях отображайте повторяющиеся изменения. Избыточное изменение - это изменение
который был отображен в другом месте отчета.

· - без избыточности

В отчете о различиях сделайте НЕ отображать повторяющиеся изменения. Избыточное изменение - это изменение
который был отображен в другом месте отчета. Эта опция включена
по умолчанию.

· - без архитектуры

Не принимайте во внимание архитектуру при сравнении ABI.

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

· --статистика

Выдавайте статистику о различных внутренних вещах.

· --подробный

Создавайте подробные журналы о ходе выполнения различных внутренних задач.

ВЕРНУТЬ ЦЕННОСТИ:


Код выхода из соблюдать команда либо 0, если ABI сравниваемых двоичных файлов
равны или не равны нулю, если они различаются или инструмент обнаружил ошибку.

В последнем случае код выхода представляет собой битовое поле шириной 8 бит, в котором каждый бит имеет
конкретное значение.

Первый бит, имеющий значение 1, назван ABIDIF_ERROR означает, что произошла ошибка.

Второй бит, имеющий значение 2, назван ABIDIFF_USAGE_ERROR означает, что в пути произошла ошибка
пользователь вызвал инструмент. Это может быть установлено, например, если пользователь вызвал инструмент
с неизвестным переключателем командной строки, с неправильным номером или аргументом и т. д. Если этот бит
установить, затем ABIDIF_ERROR бит также должен быть установлен.

Третий бит со значением 4 с именем ABIDIFF_ABI_CHANGE означает, что ABI двоичных файлов
по сравнению разные.

Четвертый бит, имеющий значение 8, назван ABIDIFF_ABI_INCOMPATIBLE_CHANGE означает ABI
сравниваемые двоичные файлы несовместимы. Если этот бит установлен, то
ABIDIFF_ABI_CHANGE бит также должен быть установлен. Если ABIDIFF_ABI_CHANGE установлен и
ABIDIFF_INCOMPATIBLE_CHANGE is НЕ установлен, то это означает, что сравниваемые ABI могут
или может быть несовместимо. В этом случае человеку необходимо просмотреть изменения ABI.
чтобы решить, совместимы они или нет.

Остальные биты на данный момент не используются.

ИСПОЛЬЗОВАНИЕ ПРИМЕРЫ


1. Обнаружение изменения в подтипе функции:

$ кошка -n test-v0.cc
1 // Скомпилируйте это с помощью:
2 // g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 структура S0
5 {
6 инт м0;
7};
8
9 недействительно
10 foo (S0 * / * имя_параметра * /)
11 {
12 // делаем что-нибудь с параметром имя_параметра.
13}
$
$ кошка -n test-v1.cc
1 // Скомпилируйте это с помощью:
2 // g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 структура type_base
5 {
6 int вставлено;
7};
8
9 структура S0: общедоступная база_типа
10 {
11 инт м0;
12};
13
14 недействительно
15 foo (S0 * / * имя_параметра * /)
16 {
17 // делаем что-нибудь с параметром имя_параметра.
18}
$
$ g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../сборка/инструменты/abidiff libtest-v0.so libtest-v1.so
Сводка изменений функций: 0 удалено, 1 изменено, 0 добавлена ​​функция
Сводка изменений переменных: 0 удалено, 0 изменено, 0 добавлена ​​переменная

1 функция с некоторым косвенным изменением подтипа:

[C] 'function void foo (S0 *)' имеет некоторые косвенные изменения подтипа:
параметр 0 типа 'S0 *' имеет изменения подтипа:
в указывает на тип 'struct S0':
размер изменен с 32 до 64 бит
1 вставка базового класса:
структура type_base
1 изменение элемента данных:
Смещение int S0 :: m0 изменено с 0 на 32
$

2. Обнаружение другого изменения в подтипе функции:

$ кошка -n test-v0.cc
1 // Скомпилируйте это с помощью:
2 // g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 структура S0
5 {
6 инт м0;
7};
8
9 недействительно
10 foo (S0 & / * имя_параметра * /)
11 {
12 // делаем что-нибудь с параметром имя_параметра.
13}
$
$ кошка -n test-v1.cc
1 // Скомпилируйте это с помощью:
2 // g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 структура S0
5 {
6 символов Insert_member;
7 инт м0;
8};
9
10 недействительно
11 foo (S0 & / * имя_параметра * /)
12 {
13 // делаем что-нибудь с параметром имя_параметра.
14}
$
$ g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../сборка/инструменты/abidiff libtest-v0.so libtest-v1.so
Сводка изменений функций: 0 удалено, 1 изменено, 0 добавлена ​​функция
Сводка изменений переменных: 0 удалено, 0 изменено, 0 добавлена ​​переменная

1 функция с некоторым косвенным изменением подтипа:

[C] 'function void foo (S0 &)' имеет некоторые косвенные изменения подтипа:
параметр 0 типа 'S0 &' имеет изменения подтипа:
в ссылочном типе 'struct S0':
размер изменен с 32 до 64 бит
Вставка 1 элемента данных:
'char S0 :: Insert_member' со смещением 0 (в битах)
1 изменение элемента данных:
Смещение int S0 :: m0 изменено с 0 на 32

$

3. Обнаружение того, что функции были удалены или добавлены в библиотеку:

$ кошка -n test-v0.cc
1 // Скомпилируйте это с помощью:
2 // g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 структура S0
5 {
6 инт м0;
7};
8
9 недействительно
10 foo (S0 & / * имя_параметра * /)
11 {
12 // делаем что-нибудь с параметром имя_параметра.
13}
$
$ кошка -n test-v1.cc
1 // Скомпилируйте это с помощью:
2 // g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 структура S0
5 {
6 символов Insert_member;
7 инт м0;
8};
9
10 недействительно
11 бар (S0 & / * имя_параметра * /)
12 {
13 // делаем что-нибудь с параметром имя_параметра.
14}
$
$ g ++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g ++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../сборка/инструменты/abidiff libtest-v0.so libtest-v1.so
Сводка изменений функций: 1 удалено, 0 изменено, 1 добавлено функций
Сводка изменений переменных: 0 удалено, 0 изменено, 0 добавлена ​​переменная

1 Удаленная функция:
'function void foo (S0 &)' {_Z3fooR2S0}

1 Добавленная функция:
'function void bar (S0 &)' {_Z3barR2S0}

$

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


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

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

  • 1
    Pharser
    Pharser
    Phaser - это быстрый, бесплатный и увлекательный
    исходный игровой фреймворк HTML5, который предлагает
    WebGL и рендеринг Canvas через
    настольные и мобильные веб-браузеры. Игры
    может быть со ...
    Скачать Фазер
  • 2
    VASSAL Двигатель
    VASSAL Двигатель
    VASSAL - игровой движок для создания
    электронные версии традиционной доски
    и карточные игры. Он обеспечивает поддержку
    рендеринг и взаимодействие игровых элементов,
    и ...
    Скачать движок VASSAL
  • 3
    OpenPDF - форк iText
    OpenPDF - форк iText
    OpenPDF — это библиотека Java для создания
    и редактирование PDF-файлов с помощью LGPL и
    Лицензия с открытым исходным кодом MPL. OpenPDF – это
    LGPL/MPL преемник iText с открытым исходным кодом,
    и ...
    Скачать OpenPDF — форк iText
  • 4
    SAGA GIS
    SAGA GIS
    САГА - Автоматизированная система
    Геонаучный анализ - это географический
    Программное обеспечение информационной системы (ГИС) с
    огромные возможности для геоданных
    обработка и анализ ...
    Скачать ГИС САГА
  • 5
    Панель инструментов для Java / JTOpen
    Панель инструментов для Java / JTOpen
    IBM Toolbox for Java / JTOpen — это
    библиотека классов Java, поддерживающая
    клиент/сервер и интернет-программирование
    моделей в систему под управлением OS/400,
    i5/ОС, о...
    Скачать набор инструментов для Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (или D3 для документов, управляемых данными)
    это библиотека JavaScript, которая позволяет вам
    для создания динамических интерактивных данных
    визуализации в веб-браузерах. С D3
    вы...
    Скачать D3.js
  • Больше »

Команды Linux

Ad