Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

abicheck - Online w chmurze

Uruchom abicheck w darmowym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

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

PROGRAM:

IMIĘ


abicheck - sprawdza pliki binarne aplikacji pod kątem wywołań prywatnych lub rozwijających się symboli
bibliotek oraz do statycznego łączenia niektórych bibliotek systemowych.

STRESZCZENIE


abiczek [-h] [-k] [-a] [-I] [-v] [-f plik listy] [-lub plik wyjściowy] [-P wzór] [-mi wzór] [-J
npraca] [-l Biblioteka] [-L ldpath] [(-s|-S) plik db] [(-d|-D) plik db] [-O plik db] [-A
plik listy] pliki

OPIS


abiczek jest uruchamiany w plikach binarnych aplikacji i generuje ostrzeżenia w przypadku wystąpienia jednego z poniższych
wykryto trzy warunki:

· Sprawy Prywatne symbol stosowanie. Symbole prywatne to funkcje lub zmienne danych w bibliotece
pakietu, które są wewnętrzne dla tego pakietu. Są używane przez biblioteki zawarte w pakiecie
do komunikacji wewnętrznej i nie są częścią API/ABI twórców aplikacji
powinien użyć.

· Ewolucja symbol stosowanie. Symbole ewoluujące to funkcje lub zmienne danych w bibliotece
pakiet, który jest przeznaczony do użytku programistycznego, ale został oznaczony jako „ewoluujący” lub
„niestabilne” w tym sensie, że mogą stać się niekompatybilne lub zniknąć w późniejszej wersji
pakietu bibliotecznego.

· Statyczny łączenie. Statyczne łączenie bibliotek systemowych (na przykład libc.a) w plik
aplikacja nie jest generalnie dobrym pomysłem, ponieważ kod biblioteki systemowej jest „blokowany”.
plik binarny aplikacji może stać się niekompatybilny z późniejszymi wydaniami systemu. abiczek
próbuje wykryć statyczne linkowanie kilku bibliotek systemowych.

Domyślnym zachowaniem jest sprawdzanie dla każdego zaznaczonego obiektu binarnego bezpośrednich wywołań z niego
tylko obiekt binarny. The -l opcja umożliwia posiadanie bibliotek, które wprowadza obiekt binarny
ich rozmowy również zostały sprawdzone.

OPCJE


Obsługiwane są następujące opcje:

-k Kontynuuj sprawdzanie plików binarnych, nawet jeśli występują poważne błędy (raporty dynamicznego linkera
nierozwiązane symbole, ldd(1) awarie, nie wykryto żadnych symboli).

-h Wydrukuj długi formularz pomocy.

-v Gadatliwy. Wydrukuj dodatkowe informacje.

-f plik listy
Połączenia plik listy to plik zawierający listę obiektów binarnych do sprawdzenia, po jednym w wierszu.
Lista ta jest dołączana do wszystkich plików podanych jako argumenty w wierszu poleceń. Jeśli
plik listy jest „-”, wówczas używane jest standardowe wejście.

-o plik wyjściowy
Zapisz dane wyjściowe do plik wyjściowy zamiast stdout.

-p wzorzec
Zmodyfikuj wzorzec nazwy wersji odpowiadający etykietowaniu zestawów wersji prywatnych. Domyślnie jest
/prywatny/ przy użyciu dopasowania niewrażliwego na wielkość liter.

Jeśli składnik wyrażenia regularnego wzorzec zawiera dwa dwukropki z rzędu: patt1::patt2,
następnie dopasowanie na poziomie symbolu zostanie aktywowane poprzez sprawdzenie, czy wersja::symbol or
biblioteka::symbol zapałki wzorzec (gdzie nazwa symbolu, wersja (jeśli istnieje) i
nazwa bazowa biblioteki są zastępowane symbol, wersja, biblioteka). Na przykład,

-p 'FOO_VERS.*::_foopriv'
or
-p 'libfoo.so.*::_foopriv'

-e wzorzec
Taki sam jak -p ale dla „ewoluujących” interfejsów.

-L ldpath
Ustaw LD_LIBRARY_PATH zmienna środowiskowa do ldpath przed wywołaniem dynamic
linker. Używać -L "" aby rozbroić LD_LIBRARY_PATH.

Jeśli jeden ze składników ldpath jest ciągiem „znajdź”, a następnie wszystkie biblioteki współdzielone
in pliki zostaną znalezione, a ich ścieżki wstawione do lokalizacji „znajdź”. Zauważ to
kolejność będzie losowa.

-l biblioteka
Dodaj nazwę bazową lub pełną ścieżkę biblioteki współdzielonej biblioteka do listy
obiekty, które należy sprawdzić pod kątem wykonywania połączeń prywatnych. Ta opcja może wystąpić więcej niż
raz w wierszu poleceń i jest addytywny. Domyślnie tylko bezpośrednie połączenia z a
binarne do bibliotek systemowych są sprawdzane. The -l przełącznik umożliwia sprawdzenie
wywołania pośrednie, np.: aplikacja -> supportlib -> systemlib.

-a Przed sprawdzeniem przejrzyj wszystkie pliki binarne i zbierz listę wszystkich udostępnionych plików
obiekty. Weź nazwę bazową każdego znalezionego obiektu współdzielonego i zachowuj się tak, jakby tak było
określone z -l Option, a następnie uruchom kontrolę abicheck. Tą drogą,
sprawdzane są wywołania ze wszystkich obiektów „wewnętrznych aplikacji”, a nie tylko
połączenia bezpośrednie. (Przydatne, gdy obiekty współdzielone nie mają swoich zależności
nagrany.)

-I Podczas sprawdzania ignoruj ​​biblioteki współdzielone, sprawdzaj tylko pliki wykonywalne. Kompatybilny z -za,
biblioteki będą najpierw przeszukiwane, ale potem nie będą sprawdzane.

-d plik db, -D plik db
Określ zastępczą bazę danych symboli w formacie pliku płaskiego dla danych dynamicznych (publicznych i prywatnych)
test. Klasyfikacje te zostaną użyte, jeśli biblioteka nie jest wersjonowana (tj
klasyfikacja nie istnieje w samej bibliotece). Używać -D tylko to wskazać
Informacja z plik db należy używać. Linie w plik db może być jednym z nich
formy:

biblioteka|symbol
biblioteka|klasa|symbol
biblioteka|PLIK=ścieżka

biblioteka musi być pełną ścieżką do określonej biblioteki (nie może to być plik
nazwa podstawowa).

Pierwsza forma oznacza symbol jako prywatny.

Druga forma oznacza symbol w klasa gdzie klasa mogą być publiczne, prywatne lub
ewoluuje.

Trzecia forma wskazuje plik ścieżka należy otworzyć na żądanie, kiedy biblioteka is
pierwszy raz napotkany. Plik ścieżka zawiera wiersze dwóch pierwszych formularzy z wyjątkiem
biblioteka pole. Trzecia forma to przyspieszenie, aby uniknąć przetwarzania wielu klasyfikacji
linie dla bibliotek, których nigdy nie napotkano w przebiegu.

-O plik db
Określ plik zastąpień, aby zmodyfikować klasyfikację symboli dla dynamiki
(publiczny kontra prywatny) test. Format pliku zastępującego jest następujący:

biblioteka|symbol|klasa

Biblioteka może mieć pełną ścieżkę lub nazwę bazową. Jeśli biblioteka to „__SKIP__”, symbol
zostanie zignorowana dla każdej biblioteki, w której się znajduje. Klasa może być „publiczna”,
„prywatne”, „ewoluujące” lub „usunięte”. Klasa „usunięta” jest oznaczona specjalnymi literami
w niektórych wersjach symbol został usunięty z biblioteki. Symbol „__ALL__” dla
klasa „usunięta” oznacza, że ​​cała biblioteka została usunięta lub jest w inny sposób niestabilna
używać.

Przykłady:

libfoo.so.1|__bar|prywatny
/lib/libxyz.so.1|baz|publiczny
__SKIP__|__fputwc_xpg5

Te ustawienia zastępują wszelkie klasyfikacje w bibliotece (z biblioteki
wersjonowanie, które można uzyskać z pv(1) itd.).

-A plik listy
Ustaw interesujące biblioteki ABI na biblioteki wymienione w plik listy (pełna
nazwy ścieżek, po jednej w linii). Sprawdzane będą tylko wywołania tych bibliotek; Wszystko
inne wywołania biblioteczne będą ignorowane.

-s plik db, -S plik db
Określ bardziej rozbudowane bazy danych symboli dla testu łączenia statycznego. plik db może być
lista plików oddzielona przecinkami. Jeśli plik jest archiwum statycznym (lib*.a), tak właśnie jest
przetwarzane w celu wyodrębnienia symboli. W przeciwnym razie jest to plik bazy danych składający się z
linie formularza symbol|biblioteka:moduł na przykład:

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
...

Gdy w aplikacji zdefiniowano wszystkie symbole w module.o, statyczne połączenie
zakłada się, że ten moduł (i odpowiadające mu archiwum biblioteczne) jest zakładany. Używać -S wskazać
że należy przeprowadzić tylko test łącza statycznego.

Zastosowanie -S int aby wykonać tylko sprawdzenie łącza statycznego i korzystanie z wewnętrznej bazy danych.

Zastosowanie -s Żaden or -S Żaden aby całkowicie pominąć sprawdzanie łączenia statycznego.

-j nprace
run nprace równolegle jako odrębne procesy. Oznacza -k. Przeznaczone przede wszystkim do
wiele komputerów z procesorem, gdzie nprace powinna być zbliżona do liczby procesorów.
Dane wyjściowe są gromadzone w plikach tmp i drukowane od razu pod koniec przebiegu jako
każda praca się kończy.

If nprace oznacza „-”, „wykryj” lub „n”. nprace zostanie ustawiona liczba w zależności od
liczba procesorów na bieżącej maszynie (jeśli można to określić).

OPERANDY


Obsługiwane są następujące argumenty:

pliki Lista obiektów binarnych aplikacji do sprawdzenia.

WYDAJNOŚĆ


Na każdy problem przypada jedna linia (na każdy sprawdzany plik binarny może przypadać wiele problemów).
wyglądać następująco:

Jeśli nie znaleziono żadnych problemów:
filename: W PORZĄDKU

Jeśli użycie symbolu prywatnego:
Nazwa pliku: PRYWATNE (biblioteka:wersja_prywatna) prywatny_sym

Jeśli ewoluuje użycie symboli:
filename: EWOLUUJĄCY (biblioteka:ewoluuje_wers) ewoluuje_sym

Jeśli plik jest statycznie połączony w systemowej bibliotece archiwum:
filename: STATIC_LINK (archiwum)

Jeśli pominięto sprawdzanie pliku:
filename: POMINĄĆ (powód)

W trakcie używania usuniętej klasy w -O override file, mogą wystąpić takie problemy
znaleziony:

Jeśli w jakiejś wersji symbol został usunięty z biblioteki:
filename: DELETED_SYM: symbol/biblioteka

(biblioteka będzie „niezwiązany”, jeśli symbol był niezwiązany)

Jeśli cała biblioteka została usunięta w jakimś wydaniu lub jest w inny sposób niestabilna
posługiwać się:
filename: NIESTABILNE_LIB: nazwa-biblioteki = ścieżka-biblioteki

(ścieżka-biblioteki może pojawić się komunikat „nie znaleziono pliku”, jeśli nie można znaleźć biblioteki)

Następujące problemy spowodują błąd krytyczny, chyba że plik -k używana jest opcja:

Jeśli dynamiczny linker nie mógł rozwiązać problemu N symbole kiedy ldd -r został uruchomiony:
filename: UNBOUND_SYMBOLS: N

Jeśli dynamiczny linker nie znalazł żadnych dynamicznych powiązań:
filename: BRAK WIĄZAŃ

If ldd -r w LD_DEBUG=pliki, powiązania przegrany:
filename: BŁĄD_LDD

W tych trzech ostatnich przypadkach działają ldd -r w pliku binarnym, aby uzyskać więcej informacji na temat tego, co
poszło źle (zauważ, że abiczek działa ldd -r w LD_DEBUG=pliki, powiązania ustawić). Na niektórych
systemy, w których dynamiczny linker nie będzie przetwarzał programów SUID LD_DEBUG zestaw (zwykle
wyniki w NO_WIĄZANIA abiczek wyjście).

Zauważ, że jeśli używasz abicheck na bibliotece współdzielonej (na przykład libfoo.so), to
ma nie został zbudowany z -l lib flags, aby zarejestrować zależności bibliotek, a następnie plik „unbound
symbols” jest bardzo prawdopodobny. Niewiele można zrobić poza odbudowaniem pliku
bibliotekę lub sprawdzenie pliku binarnego aplikacji korzystającej z biblioteki i użycie -l opcja
abiczek.

EXIT STATUS


Zwracane są następujące wartości wyjściowe:

0 Nie znaleziono żadnych błędów ani problemów.

1 Wystąpił błąd krytyczny.

2 Nie wystąpiły żadne błędy krytyczne, ale w niektórych plikach binarnych wykryto problemy.

UWAGI


Sprawdzane są tylko obiekty ELF.

W -s -S -d i -O dbfiles znak „#” rozpoczyna wiersz komentarza w zwykły sposób.

Chyba, że ​​ktoś używa niestandardowych dopasowań „::” dostarczanych przez -p or -e flagi, puszka abicheck
sprawdzaj tylko biblioteki systemowe, do których zastosowano wersjonowanie symboli (tj
prywatne i/lub zmieniające się informacje zapisane dla każdego symbolu w samej bibliotece).
Aby uzyskać więcej informacji na temat wersjonowania symboli, zobacz „Przewodnik po Solaris Linkerze i bibliotekach”
książka odpowiedzi pod adresem URL http://docs.sun.com/ab2/coll.45.13 oraz Polecenia/Skrypt wersji
sekcja strony informacyjnej linkera GNU „ld”.

Domyślne wzorce dopasowywania nazw wersji symbolu nie uwzględniają wielkości liter
ciągi znaków „prywatny” i „ewoluujący” odpowiednio dla przypadków prywatnych i ewoluujących.

Nieparzyste nazwy plików zawierające znak pojedynczego cudzysłowu lub znak nowej linii zostaną pominięte; taki
znaki zakłócają wywoływanie poleceń za pośrednictwem powłoki.

Aby skorzystać z katalogów cyklicznych odnaleźć(1) i albo zbierz dane wyjściowe do pliku do użycia
dotychczasowy -f opcję lub w rurze przez:

znajdź... | abicheck -f - ...

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


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad