EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

abicheck - Online în cloud

Rulați abicheck în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda abicheck care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


abicheck - verificați binarele aplicației pentru apeluri către simboluri private sau în evoluție în
biblioteci și pentru legarea statică a unor biblioteci de sistem.

REZUMAT


abicheck [-h] [-k] [-a] [-I] [-v] [-f listfile] [-sau fisier] [-p model] [-e model] [-j
njobs] [-l bibliotecă] [-L ldpath] [(-s|-S) dbfile] [(-d|-D) dbfile] [-O dbfile] [-A
listfile] fișiere

DESCRIERE


abicheck este rulat pe aplicații binare și emite avertismente ori de câte ori oricare dintre următoarele
sunt detectate trei condiții:

· Privat simbol de utilizare. Simbolurile private sunt funcții sau variabile de date dintr-o bibliotecă
pachet care sunt interne pachetului respectiv. Sunt folosite de bibliotecile din pachet
pentru comunicare internă și nu fac parte din API/ABI pe care dezvoltatorii de aplicații
ar trebui să folosească.

· Evoluand simbol de utilizare. Simbolurile în evoluție sunt funcții sau variabile de date dintr-o bibliotecă
pachete care sunt destinate consumului de dezvoltator, dar au fost marcate ca „în evoluție” sau
„instabile” în sensul că pot deveni incompatibile sau pot dispărea la o lansare ulterioară
a pachetului de bibliotecă.

· Static legarea. Conectarea statică a bibliotecilor de sistem (de exemplu, libc.a) într-un
aplicația nu este, în general, o idee bună, deoarece codul bibliotecii de sistem în care se „blochează”.
binarul aplicației poate deveni incompatibil cu versiunile ulterioare ale sistemului. abicheck
încearcă să detecteze legătura statică a câtorva biblioteci de sistem.

Comportamentul implicit este, pentru fiecare obiect binar verificat, să examineze apelurile directe din acel obiect
numai obiect binar. The -l opțiunea permite bibliotecile pe care obiectul binar le aduce să aibă
apelurile lor au fost verificate de asemenea.

OPŢIUNI


Sunt acceptate următoarele opțiuni:

-k Continuați să verificați binarele chiar dacă există erori grave (rapoartele de linker dinamic
simboluri nerezolvate, ldd(1) defecțiuni, nu au fost detectate simboluri).

-h Tipăriți o formă lungă de ajutor.

-v Verbos. Imprimați informații suplimentare.

-f listfile
listfile este un fișier care conține o listă de obiecte binare de verificat, unul pe linie.
Această listă este atașată oricăror fișiere furnizate ca argumente pe linia de comandă. Dacă
listfile este „-”, atunci se utilizează stdin.

-o outfile
Scrie ieșire în outfile în loc de stdout.

-p model
Modificați seturile de versiuni private de etichetare a modelului de potrivire a numelui versiunii. Implicit este
/privat/ folosind o potrivire care nu ține seama de majuscule.

Dacă o componentă a expresiei regex model conține două puncte pe rând: patt1::patt2,
atunci potrivirea la nivel de simbol va fi activată verificând dacă versiunea::simbol or
bibliotecă::simbol meciuri model (unde numele simbolului, versiunea (dacă există) și
bibliotecă numele de bază sunt înlocuite simbol, versiune, și bibliotecă). De exemplu,

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

-e model
La fel ca -p ci pentru interfeţe „în evoluţie”.

-L ldpath
Seteaza LD_LIBRARY_PATH variabila de mediu la ldpath înainte de a invoca dinamica
linker. Utilizare -L „” pentru a dezactiva LD_LIBRARY_PATH.

Dacă una dintre componentele ldpath este șirul „găsi”, apoi toate bibliotecile partajate
in fișiere sunt găsite și căile lor sunt introduse în locația „găsește”. Rețineți că
comanda va fi aleatorie.

-l bibliotecă
Adăugați numele de bază sau calea completă a bibliotecii partajate bibliotecă la lista de
obiecte de verificat pentru efectuarea de apeluri private. Această opțiune poate apărea mai mult de
o dată pe linia de comandă și este aditiv. În mod implicit, numai apelurile directe de la a
binare pentru bibliotecile de sistem sunt verificate. The -l comutatorul permite verificarea
apeluri indirecte de exemplu: app -> supportlib -> systemlib.

-a Parcurgeți toate binarele înainte de a verifica și colectați lista tuturor celor partajate
obiecte. Luați numele de bază al fiecărui obiect partajat găsit și acționați ca și cum ar fi
specificat cu -l opțiunea de opțiune și apoi executați verificările abicheck. Pe aici,
apelurile de la toate obiectele „interne ale aplicației” sunt verificate mai degrabă decât doar
apeluri directe. (Util atunci când obiectele partajate nu au dependențele lor
înregistrate.)

-I Ignorați bibliotecile partajate în verificare, verificați doar executabilele. Compatibil cu -A,
bibliotecile vor fi căutate mai întâi, dar apoi nu vor fi verificate.

-d dbfile, -D dbfile
Specificați baza de date de simboluri cu fișiere plat de rezervă pentru dinamica (publică vs. privată)
Test. Aceste clasificări vor fi utilizate dacă biblioteca nu este versiunea (de ex
clasificarea nu există în bibliotecă în sine). Utilizare -D pentru a indica doar asta
informatii de la dbfile ar trebui folosit. Rânduri în dbfile poate fi unul dintre acestea
forme:

bibliotecă|simbol
biblioteca|clasa|simbol
bibliotecă|FILE=cale

bibliotecă trebuie să fie calea completă către biblioteca care trebuie specificată (nu poate fi a
nume de bază).

Prima formă marchează simbol ca privat.

A doua formă marchează simbol cu clasă Unde clasă poate fi public, privat sau
evoluând.

A treia formă indică dosarul cale ar trebui deschis la cerere când bibliotecă is
prima întâlnită. Fişier cale conține linii din primele două forme, cu excepția
bibliotecă camp. A treia formă este o accelerare pentru a evita procesarea multor clasificări
linii pentru biblioteci niciodată întâlnite în rulare.

-O dbfile
Specificați un fișier de înlocuire pentru a modifica clasificarea simbolului pentru dinamică
(public vs privat) test. Formatul fișierului de înlocuire este ca:

bibliotecă|simbol|clasă

Biblioteca poate fi calea completă sau numele de bază. Dacă biblioteca este „__SKIP__” simbolul
va fi ignorată pentru orice bibliotecă în care se găsește. Clasa poate fi „publică”,
„privat”, „în evoluție” sau „șters”. Clasa „ștersă” este cu majuscule speciale, înseamnă
simbolul a fost șters din bibliotecă la unele versiuni. Simbolul „__ALL__” pentru
clasa „ștersă” înseamnă că întreaga bibliotecă a fost ștearsă sau este altfel instabilă
a folosi.

Exemple:

libfoo.so.1|__bar|privat
/lib/libxyz.so.1|baz|public
__SKIP__|__fputwc_xpg5

Aceste setări suprascrie orice clasificare din bibliotecă (din bibliotecă
versiunea, disponibilă de la pvs(1), etc).

-A listfile
Setați bibliotecile ABI de interes la bibliotecile enumerate în listfile (plin
nume de căi, unul pe linie). Doar apelurile către aceste biblioteci vor fi verificate; toate
alte apeluri de bibliotecă vor fi ignorate.

-s dbfile, -S dbfile
Specificați baze de date de simboluri mai extinse pentru testul de legătură statică. dbfile poate fi
o listă de fișiere separate prin virgulă. Dacă un fișier este o arhivă statică (lib*.a), este
procesate pentru extragerea simbolurilor. În caz contrar, este un fișier de bază de date format din
linii de forma simbol|biblioteca:modul de exemplu:

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

Când toate simbolurile dintr-un module.o sunt definite în aplicație, legarea statică a
acel modul (și arhiva bibliotecii corespunzătoare) este presupus. Utilizare -S pentru a indica
că ar trebui efectuat doar testul de legătură statică.

Utilizare -S int pentru a face doar verificarea legăturii statice și folosind baza de date internă.

Utilizare -s nici unul or -S nici unul pentru a omite complet verificarea conexiunii statice.

-j njobs
Alerga njobs în paralel ca procese separate. implică -k. Destinat în primul rând pentru
mai multe mașini CPU unde njobs ar trebui să fie aproape de numărul de procesoare.
Ieșirea este colectată în fișiere tmp și tipărită dintr-o dată aproape de sfârșitul rulării ca
fiecare lucrare se termină.

If njobs este „-”, „detecta” sau „n”, atunci njobs va fi setat la un număr în funcție de
numărul de procesoare de pe mașina curentă (dacă poate fi determinat).

OPERANDE


Sunt acceptați următorii operanzi:

fișiere O listă de obiecte binare ale aplicației de verificat.

REZULTATE


Există o linie pe problemă (pot fi mai multe probleme pe binar verificat) care
arăta în felul următor:

Dacă nu au fost găsite probleme:
nume de fișier: BINE

Dacă se utilizează simboluri private:
nume de fișier: PRIVAT (bibliotecă:versiunea_privată) private_sym

Dacă evoluția utilizării simbolului:
nume de fișier: EVOLUTIONARE (bibliotecă:evoluing_vers) evolutiv_sym

Dacă fișierul este legat static într-o bibliotecă de arhivă de sistem:
nume de fișier: STATIC_LINK (Arhiva)

Dacă verificarea fișierului a fost omisă:
nume de fișier: OCOLIRE (motiv)

În timpul utilizării clasei șterse în -O opțiunea de înlocuire a fișierului, aceste probleme pot fi
găsite:

Dacă un simbol a fost șters din bibliotecă pe o anumită versiune:
nume de fișier: DELETED_SYM: simbol/bibliotecă

(bibliotecă va fi „nelegat” dacă simbolul a fost nelegat)

Dacă o bibliotecă întreagă a fost ștearsă într-o ediție sau este altfel instabilă
utilizați:
nume de fișier: UNSTABLE_LIB: bibliotecă-soname = calea bibliotecii

(calea bibliotecii poate fi „fișierul nu a fost găsit” dacă biblioteca nu a putut fi găsită)

Următoarele probleme vor cauza o eroare fatală, cu excepția cazului în care -k se foloseste optiunea:

Dacă linkerul dinamic nu s-a putut rezolva N simboluri când ldd -r a fost condus:
nume de fișier: UNBOUND_SYMBOLS: N

Dacă linkerul dinamic nu a găsit legături dinamice:
nume de fișier: NO_BINDINGS

If ldd -r cu LD_DEBUG=fișiere,legături a eșuat:
nume de fișier: LDD_ERROR

În aceste din urmă trei cazuri rulează ldd -r pe fișierul binar pentru mai multe informații despre ce
a mers prost (rețineți că abicheck ruleaza ldd -r cu LD_DEBUG=fișiere,legături a stabilit). Pe unele
sistemele cu care linkerul dinamic nu va procesa programe SUID LD_DEBUG set (aceasta de obicei
rezultă în FĂRĂ_LEGĂRI în abicheck ieșire).

Rețineți că, dacă rulați abicheck pe o bibliotecă partajată (de exemplu, libfoo.so), asta
are nu fost construit cu -l lib flags pentru a înregistra dependențele bibliotecii sale, apoi „unbound
problema simbolurilor" este foarte probabilă. Nu sunt multe de făcut în afară de reconstruirea
bibliotecă sau verificarea unei aplicații binar care folosește biblioteca și folosind -l opțiunea de a
abicheck.

EXIT STAREA


Sunt returnate următoarele valori de ieșire:

0 Nu au fost găsite erori și nicio problemă.

1 A apărut o eroare fatală.

2 Nu au apărut erori fatale, dar unele binare au avut probleme detectate.

NOTE


Sunt verificate doar obiectele ELF.

În -s -S -d și -O dbfiles caracterul „#” începe o linie de comentariu în mod obișnuit.

Cu excepția cazului în care cineva folosește potrivirile personalizate „::” furnizate prin intermediul -p or -e steaguri, abicheck poate
verificați numai bibliotecile de sistem cărora li s-a aplicat versiunea simbolurilor (de ex
informațiile private și/sau în evoluție înregistrate pentru fiecare simbol în bibliotecă în sine).
Pentru mai multe informații despre versiunea simbolurilor, consultați „Ghidul de linkuri și biblioteci Solaris”
caiet de răspunsuri la adresa URL http://docs.sun.com/ab2/coll.45.13 și Commands/Version-Script
secțiunea din pagina de informații GNU linker „ld”.

Modelele implicite de potrivire a numelui versiunii simbolului sunt potriviri care nu țin cont de majuscule și minuscule la
șiruri „privat” și „în evoluție” pentru cazurile private și, respectiv, în evoluție.

Numele de fișiere ciudate care conțin caracterul cu ghilimele simple sau linia nouă vor fi omise; astfel de
caracterele interferează cu apelarea comenzilor prin intermediul shell-ului.

Pentru a recurge directoarele utilizați găsi(1) și fie colectează rezultatul într-un fișier pentru a fi utilizat cu
il -f opțiune, sau într-o conductă prin:

găsi... | abicheck -f - ...

Utilizați abicheck online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad