Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

abidiff - Online w chmurze

Uruchom abidiff w darmowym dostawcy hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie abidiff, które można uruchomić w darmowym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


abidiff - porównaj ABI plików ELF

abidiff porównuje interfejsy binarne aplikacji (ABI) dwóch współdzielonych bibliotek w ELF
format. Emituje znaczący raport opisujący różnice między dwoma ABI.

Aby uzyskać kompleksowy raport zmian ABI, który zawiera zmiany dotyczące funkcji i zmiennych
podtypy, dwóm wejściowym bibliotekom współdzielonym muszą towarzyszyć ich informacje debugowania
in KRASNOLUD format. Inaczej tylko ELF zgłaszane są symbole, które zostały dodane lub usunięte.

WEZWANIE


abidiff [opcje]

OPCJE


· --help | -h

Wyświetl krótką pomoc dotyczącą polecenia i wyjdź.

· --wersja | -v

Wyświetl wersję programu i wyjdź.

· --debug-info-katalog1 | --d1 <dwuścieżka1>

W przypadkach, gdy informacje debugowania dla pierwsza udostępniona biblioteka dzieli się na a
osobny plik, mówi abidif gdzie znaleźć ten oddzielny plik informacji debugowania.

Należy pamiętać, że dwuścieżka musi wskazywać katalog główny, w którym znajdują się informacje debugowania
ułożony jest w sposób przypominający drzewo. W systemach opartych na Red Hat ten katalog jest
zazwyczaj /usr/lib/debug.

Należy również zauważyć, że ta opcja nie jest obowiązkowa w przypadku dzielonych informacji debugowania instalowanych przez
menedżer pakietów twojego systemu, ponieważ wtedy abidif wie, gdzie go znaleźć.

· --debug-info-katalog2 | --d2 <dwuścieżka2>

Jak --debug-info-katalog1, ta opcja mówi abidif gdzie znaleźć podzielone debugowanie
informacje dla druga biblioteka współdzielona plik.

· --statystyka

Zamiast wyświetlać szczegółowe różnice ABI między pierwsza udostępniona biblioteka i
druga biblioteka współdzielona, wystarczy wyświetlić podsumowanie statystyk dotyczących tych różnic.

· --symtaby

Wyświetlaj tylko tabele symboli pierwsza udostępniona biblioteka i druga biblioteka współdzielona.

· --usunięte-fns

W powstałym raporcie o różnicach między pierwsza udostępniona biblioteka i
druga biblioteka współdzielona, wyświetlają tylko globalnie zdefiniowane funkcje, które zostały usunięte
od pierwsza udostępniona biblioteka.

· --zmieniony-fns

W powstałym raporcie o różnicach między pierwsza udostępniona biblioteka i
druga biblioteka współdzielona, wyświetlają tylko zmiany w podtypach funkcji globalnych
zdefiniowane w pierwsza udostępniona biblioteka.

· --dodane-fns

W powstałym raporcie o różnicach między pierwsza udostępniona biblioteka i
druga biblioteka współdzielona, wyświetlają tylko globalnie zdefiniowane funkcje, do których zostały dodane
druga biblioteka współdzielona.

· --usunięte-zmienne

W powstałym raporcie o różnicach między pierwsza udostępniona biblioteka i
druga biblioteka współdzielona, wyświetlają tylko globalnie zdefiniowane zmienne, które zostały usunięte
od pierwsza udostępniona biblioteka.

· --zmieniono-zmienne

W powstałym raporcie o różnicach między pierwsza udostępniona biblioteka i
druga biblioteka współdzielona, wyświetlają tylko zmiany w podtypach global
zmienne zdefiniowane w pierwsza udostępniona biblioteka

· --dodane-zmienne

W powstałym raporcie o różnicach między pierwsza udostępniona biblioteka i
druga biblioteka współdzielona, wyświetlają tylko zmienne globalne, do których zostały dodane (zdefiniowane).
druga biblioteka współdzielona.

· --nazwa-bez-powiązania

W wynikowym raporcie nie wyświetlaj nazw powiązań dodanych, usuniętych lub
zmienione funkcje lub zmienne.

· --no-show-loc
Nie pokazuj informacji o tym, gdzie w Dopiero shared biblioteka odpowiedni
typ został zmieniony.

· --no-bez-odniesień-symbole

W wynikowym raporcie nie wyświetlaj informacji o zmianie funkcji i
symbole zmiennych, do których nie odwołują się żadne informacje debugowania. Zauważ, że dla
te symbole, do których nie odwołują się żadne informacje debugowania, informacje o zmianie
wyświetlane są dodane lub usunięte symbole.

· --tłumienie | --wspomaganie <ścieżka do tłumienia>

Użyj pliku specyfikacji pomijania znajdującego się pod adresem ścieżka do tłumienia. Zwróć uwagę, że this
opcja może pojawić się wiele razy w wierszu poleceń; całe tłumienie
brane są pod uwagę pliki specyfikacji.

· --upuszczać <regex>

Podczas czytania ww pierwsza udostępniona biblioteka i druga biblioteka współdzielona Pliki wejściowe ELF, upuść
globalnie zdefiniowane funkcje i zmienne, których nazwy pasują do wyrażenia regularnego
regex. W rezultacie żadne zmiany dotyczące tych funkcji lub zmiennych nie zostaną wyemitowane
w raporcie różnicowym.

· --drop-fn <regex>

Podczas czytania ww pierwsza udostępniona biblioteka i druga biblioteka współdzielona Pliki wejściowe ELF, upuść
globalnie zdefiniowane funkcje, których nazwa pasuje do wyrażenia regularnego regex. Jak
wynik, żadna zmiana dotycząca tych funkcji nie zostanie wyemitowana w raporcie różnic.

· --drop-var <regex>

Podczas czytania ww pierwsza udostępniona biblioteka i druga biblioteka współdzielona Pliki wejściowe ELF, upuść
globalnie zdefiniowane zmienne pasujące do wyrażenia regularnego regex.

· --trzymać <regex>

Podczas czytania ww pierwsza udostępniona biblioteka i druga biblioteka współdzielona Pliki wejściowe ELF, zachowaj
globalnie zdefiniowane funkcje i zmienne, których nazwy pasują do wyrażenia regularnego
regex. Wszystkie inne funkcje i zmienne są upuszczane na podłogę i dlatego nie będą
pojawiają się w wynikowym raporcie różnic.

· --keep-fn <regex>

Podczas czytania ww pierwsza udostępniona biblioteka i druga biblioteka współdzielona Pliki wejściowe ELF, zachowaj
globalnie zdefiniowane funkcje, których nazwa pasuje do wyrażenia regularnego regex. Wszystko
inne funkcje są upuszczane na podłogę i dlatego nie pojawią się w wynikach
raport różnic.

· --keep-var <regex>

Podczas czytania ww pierwsza udostępniona biblioteka i druga biblioteka współdzielona Pliki wejściowe ELF, zachowaj
globalnie zdefiniowane, które nazwy pasują do wyrażenia regularnego regex. Wszystkie pozostałe
zmienne są upuszczane na podłogę i dlatego nie pojawią się w wynikowym pliku różnicowym
zgłosić.

· --niegroźny

W raporcie różnic wyświetl tylko nieszkodliwe zmiany. Domyślnie nieszkodliwe
zmiany są odfiltrowywane z raportu różnic, ogranicz bałagan do minimum i miej
większa zmiana, aby wykryć prawdziwe problemy z ABI.

· --nie-szkodliwe

W raporcie różnic nie wyświetlaj szkodliwych zmian. Domyślnie tylko szkodliwe
zmiany są wyświetlane w raporcie różnic.

· --zbędny

W raporcie różnic wyświetlaj zbędne zmiany. Zbędna zmiana to zmiana
który został wyświetlony w innym miejscu raportu.

· --nie-zbędne

W raporcie różnicowym zrób NIE wyświetlać zbędne zmiany. Zbędna zmiana to zmiana
który został wyświetlony w innym miejscu raportu. Ta opcja jest włączona przez
domyślna.

· --brak architektury

Nie bierz pod uwagę architektury podczas porównywania ABI.

· --dump-diff-drzewo
Po raporcie diff wyemituj tekstową reprezentację drzewa węzłów diff używanego przez
porównywarkę do reprezentowania zmienionych funkcji i zmiennych. To
reprezentacja jest emitowana do wyjścia błędu w celu debugowania. Zauważ to
to drzewo różnic dotyczy tylko funkcji i zmiennych, które mają jakiś podtyp
zmiany. Dodane lub usunięte funkcje i zmienne nie mają żadnego drzewa węzłów różnic
z nimi związany.

· --statystyki

Wysyłaj statystyki dotyczące różnych wewnętrznych rzeczy.

· --gadatliwy

Emituj szczegółowe dzienniki dotyczące postępu różnych wewnętrznych rzeczy.

POWRÓT WARTOŚCI


Kod wyjścia z abidif polecenie ma wartość 0, jeśli ABI porównywanych plików binarnych
są równe lub niezerowe, jeśli się różnią lub jeśli narzędzie napotkało błąd.

W tym drugim przypadku kod wyjścia to pole bitowe o szerokości 8 bitów, w którym każdy bit ma wartość
konkretne znaczenie.

Pierwszy bit o wartości 1, nazwany ABIDIFF_BŁĄD oznacza, że ​​wystąpił błąd.

Drugi bit o wartości 2 o nazwie ABIDIFF_USAGE_ERROR oznacza, że ​​wystąpił błąd w drodze
użytkownik wywołał narzędzie. Można to ustawić na przykład, jeśli użytkownik wywołał narzędzie
z nieznanym przełącznikiem wiersza poleceń, z błędną liczbą lub argumentem itp. Jeśli ten bit jest
ustawić, a następnie ABIDIFF_BŁĄD Bit również musi być ustawiony.

Trzeci bit o wartości 4 o nazwie ABIDIFF_ABI_CHANGE oznacza ABI istot binarnych
porównywane są różne.

Czwarty bit o wartości 8 o nazwie ABIDIFF_ABI_INCOMPATIBLE_CHANGE oznacza ABI
porównywane pliki binarne różnią się w niekompatybilny sposób. Jeśli ten bit jest ustawiony, to
ABIDIFF_ABI_CHANGE Bit również musi być ustawiony. jeśli ABIDIFF_ABI_CHANGE jest ustawiony i
ABIDIFF_INCOMPATIBLE_CHANGE is NIE ustawiony, oznacza to, że porównywane ABI mogą
lub może nie być kompatybilny. W takim przypadku człowiek musi przejrzeć zmiany ABI
zdecydować, czy są kompatybilne, czy nie.

Pozostałe bity na razie nie są używane.

ZASTOSOWANIE PRZYKŁADY


1. Wykrywanie zmiany podtypu funkcji:

$ cat -n test-v0.cc
1 // Skompiluj to z:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struktura S0
5 {
6 cal m0;
7 };
8
9 pustka
10 foo(S0* /*nazwa_parametru*/)
11 {
12 // zrób coś z nazwa_parametru.
13}
$
$ cat -n test-v1.cc
1 // Skompiluj to z:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struktura typ_bazy
5 {
6 wstawionych;
7 };
8
9 struktura S0: publiczna baza_typów
10 {
11 cal m0;
12 };
13
14 pustka
15 foo(S0* /*nazwa_parametru*/)
16 {
17 // zrób coś z nazwa_parametru.
18}
$
$ g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
Podsumowanie zmian funkcji: 0 usunięto, 1 zmieniono, 0 dodano funkcję
Podsumowanie zmian zmiennych: 0 usunięto, 0 zmieniono, 0 dodano zmienną

1 funkcja z pewną pośrednią zmianą podtypu:

[C]'function void foo(S0*)' ma pewne pośrednie zmiany podtypów:
parametr 0 typu „S0*” ma zmiany podtypu:
we wskazanym typie „struct S0”:
rozmiar zmieniony z 32 na 64 bity
1 wstawienie klasy bazowej:
typ_struktury_podstawa
1 zmiana członka danych:
Zmieniono przesunięcie „int S0::m0” z 0 na 32
$

2. Wykrywanie kolejnej zmiany w podtypie funkcji:

$ cat -n test-v0.cc
1 // Skompiluj to z:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struktura S0
5 {
6 cal m0;
7 };
8
9 pustka
10 foo(S0& /*nazwa_parametru*/)
11 {
12 // zrób coś z nazwa_parametru.
13}
$
$ cat -n test-v1.cc
1 // Skompiluj to z:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struktura S0
5 {
6 znaków wstawiony_członek;
7 cal m0;
8 };
9
10 pustka
11 foo(S0& /*nazwa_parametru*/)
12 {
13 // zrób coś z nazwa_parametru.
14}
$
$ g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
Podsumowanie zmian funkcji: 0 usunięto, 1 zmieniono, 0 dodano funkcję
Podsumowanie zmian zmiennych: 0 usunięto, 0 zmieniono, 0 dodano zmienną

1 funkcja z pewną pośrednią zmianą podtypu:

[C]'function void foo(S0&)' ma pewne pośrednie zmiany podtypów:
parametr 0 typu „S0&” ma zmiany podtypu:
w referencyjnym typie „struct S0”:
rozmiar zmieniony z 32 na 64 bity
1 wstawienie członka danych:
'char S0::inserted_member', z przesunięciem 0 (w bitach)
1 zmiana członka danych:
Zmieniono przesunięcie „int S0::m0” z 0 na 32

$

3. Wykrywanie, że funkcje zostały usunięte lub dodane do biblioteki:

$ cat -n test-v0.cc
1 // Skompiluj to z:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struktura S0
5 {
6 cal m0;
7 };
8
9 pustka
10 foo(S0& /*nazwa_parametru*/)
11 {
12 // zrób coś z nazwa_parametru.
13}
$
$ cat -n test-v1.cc
1 // Skompiluj to z:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struktura S0
5 {
6 znaków wstawiony_członek;
7 cal m0;
8 };
9
10 pustka
11 bar(S0& /*nazwa_parametru*/)
12 {
13 // zrób coś z nazwa_parametru.
14}
$
$ g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
Podsumowanie zmian funkcji: 1 usunięto, 0 zmieniono, 1 dodano funkcje
Podsumowanie zmian zmiennych: 0 usunięto, 0 zmieniono, 0 dodano zmienną

1 Usunięta funkcja:
'funkcja pusta foo(S0&)' {_Z3fooR2S0}

1 Dodana funkcja:
'funkcja pusta kreska(S0&)' {_Z3barR2S0}

$

Korzystaj z abidiff online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    facetracknoir
    facetracknoir
    Modułowy program do śledzenia ruchów głowy
    obsługuje wiele trackerów twarzy, filtrów
    i protokoły gier. Wśród tropicieli
    to SM FaceAPI, głowica inercyjna AIC
    Śledzenie ...
    Ściągnij facetracknoir
  • 2
    Kod QR dla PHP
    Kod QR dla PHP
    PHP QR Code jest open source (LGPL)
    biblioteka do generowania QR Code,
    2-wymiarowy kod kreskowy. Oparte na
    Biblioteka libqrencode C, zapewnia API dla
    tworzenie kodu kreskowego QR Code...
    Pobierz kod QR PHP
  • 3
    freeciv
    freeciv
    Freeciv to darmowa gra turowa
    wieloosobowa gra strategiczna, w której każdy
    gracz staje się liderem a
    cywilizacji, walcząc o uzyskanie
    ostateczny cel: być...
    Pobierz FreeCiv
  • 4
    Piaskownica z kukułką
    Piaskownica z kukułką
    Cuckoo Sandbox wykorzystuje komponenty do
    monitorować zachowanie złośliwego oprogramowania w
    Środowisko piaskownicy; odizolowany od
    reszta systemu. Oferuje zautomatyzowane
    analiza...
    Pobierz Cuckoo Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    Odtwarzaj filmy z YouTube na LMS (przenoszenie plików
    Triode do YouTbe API v3) To jest
    aplikacja, którą można również pobrać
    od
    https://sourceforge.net/projects/lms-y...
    Pobierz LMS-YouTube
  • 6
    Podstawa prezentacji systemu Windows
    Podstawa prezentacji systemu Windows
    Fundacja prezentacji systemu Windows (WPF)
    to framework interfejsu użytkownika do budowania systemu Windows
    aplikacje desktopowe. WPF obsługuje m.in
    szeroki zestaw rozwoju aplikacji
    cechy...
    Pobierz Fundację prezentacji systemu Windows
  • więcej »

Komendy systemu Linux

Ad