IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

abicheck - Online nel cloud

Esegui abicheck nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando abicheck che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici postazioni di lavoro online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


abicheck - controlla i binari dell'applicazione per le chiamate a simboli privati ​​o in evoluzione in
librerie e per il collegamento statico di alcune librerie di sistema.

SINOSSI


abicheck [-h] [-k] [-a] [-I] [-v] [-f file di elenco] [-O file di uscita] [-P modello] [-es modello] [-J
nlavori] [-l biblioteca] [-l ldpercorso] [(-s|-S) filedb] [(-re|-re) filedb] [-O filedb] [-UN
file di elenco] file

DESCRIZIONE


abicheck viene eseguito sui binari dell'applicazione e genera avvisi ogni volta che si verifica una delle seguenti condizioni
vengono rilevate tre condizioni:

· Privata simbolo utilizzo. I simboli privati ​​sono funzioni o variabili di dati in una libreria
pacchetto che sono interni a quel pacchetto. Sono usati dalle librerie nel pacchetto
per la comunicazione interna e non fanno parte dell'API/ABI che gli sviluppatori di applicazioni
dovrebbe usare.

· Evoluzione simbolo utilizzo. I simboli in evoluzione sono funzioni o variabili di dati in una libreria
pacchetto che sono destinati al consumo da parte degli sviluppatori, ma sono stati contrassegnati come "in evoluzione" o
"instabili" nel senso che possono diventare incompatibili o scomparire in una versione successiva
del pacchetto della libreria.

· statica collegamento. Collegamento statico di librerie di sistema (ad esempio, libc.a) in an
l'applicazione non è generalmente una buona idea perché il codice della libreria di sistema in cui si "blocca"
il binario dell'applicazione potrebbe diventare incompatibile con le versioni successive del sistema. abicheck
tenta di rilevare il collegamento statico di alcune librerie di sistema.

Il comportamento predefinito è, per ogni oggetto binario selezionato, esaminare le chiamate dirette da quello
solo oggetto binario. Il -l opzione permette alle librerie che l'oggetto binario porta di avere
anche le loro chiamate sono state controllate.

VERSIONI


Sono supportate le seguenti opzioni:

-k Continua a controllare i binari anche se ci sono errori gravi (report del linker dinamico
simboli irrisolti, ldd(1) guasti, nessun simbolo rilevato).

-h Stampa una lunga forma di aiuto.

-v Verboso. Stampa ulteriori informazioni.

-f listfile
I listfile è un file contenente un elenco di oggetti binari da controllare, uno per riga.
Questo elenco viene aggiunto a tutti i file forniti come argomenti sulla riga di comando. Se
listfile è "-", quindi viene utilizzato stdin.

-o file di uscita
Scrivi output su file di uscita invece di stdout.

-p modello
Modificare il modello di corrispondenza del nome della versione etichettando i set di versioni privati. L'impostazione predefinita è
/privato/ utilizzando una corrispondenza senza distinzione tra maiuscole e minuscole.

Se un componente della regex modello contiene due due punti in una riga: patt1::patt2,
quindi la corrispondenza a livello di simbolo verrà attivata controllando se versione::simbolo or
libreria::simbolo fiammiferi modello (dove il nome del simbolo, la versione (se presente) e
nome base della libreria sono sostituiti da simbolo, versionee biblioteca). Per esempio,

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

-e modello
Uguale a -p ma per interfacce "in evoluzione".

-L ldpath
Impostare il LD_LIBRARY_PATH variabile d'ambiente a ldpath prima di invocare la dinamica
linker. Utilizzo -L "" per disinserire LD_LIBRARY_PATH.

Se uno dei componenti di ldpath è la stringa "trova", quindi tutte le librerie condivise
in file vengono trovati e i loro percorsi inseriti nella posizione "trova". Notare che
l'ordine sarà casuale.

-l biblioteca
Aggiungi il nome base o il percorso completo della libreria condivisa biblioteca all'elenco di
oggetti da controllare per effettuare chiamate private. Questa opzione può verificarsi più di
una volta sulla riga di comando ed è additivo. Per impostazione predefinita, solo chiamate dirette da a
binario alle librerie di sistema sono controllati. Il -l l'interruttore consente il controllo di
chiamate indirette es: app -> supportlib -> systemlib.

-a Passa attraverso tutti i binari prima di controllare e raccogliere l'elenco di tutti condivisi
oggetti. Prendi il nome di base di ogni oggetto condiviso trovato e agisci come se lo fosse
specificato con il -l opzione option e quindi eseguire i controlli abicheck. Per di qua,
vengono controllate le chiamate da tutti gli oggetti "interni dell'applicazione" anziché solo dal
chiamate dirette. (Utile quando gli oggetti condivisi non hanno le loro dipendenze
registrato.)

-I Ignora le librerie condivise durante il controllo, controlla solo gli eseguibili. Compatibile con -un,
le librerie verranno prima cercate ma poi non verificate.

-d file db, -D dbfile
Specificare il database di simboli di file flat di fallback per il database dinamico (pubblico o privato)
test. Queste classificazioni verranno usate se la libreria non è versionata (cioè
classificazione non esiste nella libreria stessa). Utilizzo -D per indicare che solo
informazioni da dbfile dovrebbe essere usato. Linee in dbfile può essere uno di questi
le forme:

libreria|simbolo
libreria|classe|simbolo
libreria|FILE=percorso

biblioteca deve essere il percorso completo della libreria da specificare (non può essere a
nome di base).

La prima forma segna simbolo come privato.

La seconda forma segna simbolo con classe where classe può essere pubblico, privato o
in evoluzione.

La terza forma indica il file sentiero dovrebbe essere aperto su richiesta quando biblioteca is
prima incontrato. File sentiero contiene righe delle prime due forme eccetto per
biblioteca campo. La terza forma è un'accelerazione per evitare di elaborare molte classificazioni
righe per le librerie mai incontrate durante l'esecuzione.

-O dbfile
Specificare un file di sostituzione per modificare la classificazione dei simboli per la dinamica
(pubblico vs privato). Il formato per il file di override è come:

libreria|simbolo|classe

La libreria può essere il percorso completo o il nome di base. Se la libreria è "__SKIP__" il simbolo
verrà ignorato per qualsiasi libreria in cui si trova. La classe può essere "pubblica",
"privato", "in evoluzione" o "cancellato". La classe "cancellata" ha un caso speciale, significa
il simbolo è stato eliminato dalla libreria in alcune versioni. Il simbolo "__ALL__" per
la classe "cancellata" significa che l'intera libreria è stata cancellata o è altrimenti instabile
usare.

Consigli d'uso:

libfoo.so.1|__bar|privato
/lib/libxyz.so.1|baz|pubblico
__SKIP__|__fputwc_xpg5

Queste impostazioni sovrascrivono qualsiasi classificazione all'interno della libreria (dalla libreria
versioning, ottenibile da pv(1), ecc.).

-A listfile
Imposta le librerie ABI di interesse alle librerie elencate in listfile (completo
percorsi, uno per riga). Verranno controllate solo le chiamate in queste librerie; Tutti
le altre chiamate della biblioteca verranno ignorate.

-s file db, -S dbfile
Specificare database di simboli più estesi per il test di collegamento statico. dbfile può essere
un elenco di file separati da virgole. Se un file è un archivio statico (lib*.a) lo è
elaborato per estrarre i simboli. Altrimenti è un file di database composto da
righe della forma simbolo|libreria:modulo ad esempio:

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

Quando tutti i simboli in un module.o sono definiti nell'applicazione, il collegamento statico di
quel modulo (e l'archivio della libreria corrispondente) è assunto. Utilizzo -S indicare
che deve essere eseguito solo il test del collegamento statico.

Usa il -S int per fare solo il controllo del collegamento statico e utilizzando il database interno.

Usa il -s nessuna or -S nessuna per saltare completamente il controllo del collegamento statico.

-j njobs
Correre njobs in parallelo come processi separati. Implica -k. Destinato principalmente a
più macchine con CPU dove njobs dovrebbe essere vicino al numero di processori.
L'output viene raccolto in file tmp e stampato tutto in una volta verso la fine della corsa come
ogni lavoro finisce.

If njobs è "-", "rileva" o "n", quindi njobs sarà impostato su un numero che dipende da
il numero di processori sulla macchina corrente (se può essere determinato).

OPERANDI


Sono supportati i seguenti operandi:

file Un elenco di oggetti binari dell'applicazione da controllare.

USCITA


C'è una riga per problema (potrebbero esserci più problemi per binario controllato) che
assomiglia al seguente:

Se non sono stati rilevati problemi:
Nome del file: Ok

Se si utilizza un simbolo privato:
nome del file: PRIVATO (biblioteca:versione_privata) private_sym

In caso di evoluzione dell'utilizzo dei simboli:
Nome del file: IN EVOLUZIONE (biblioteca:evoluzione_vers) sim_evoluzione

Se il file è collegato staticamente in una libreria dell'archivio di sistema:
Nome del file: COLLEGAMENTO_STATICO (archiviare)

Se il controllo del file è stato saltato:
Nome del file: SALTA (ragione)

Sotto l'uso della classe eliminata nel -O sovrascrivere l'opzione file, questi problemi potrebbero essere
trovato:

Se un simbolo è stato eliminato dalla libreria in alcune versioni:
Nome del file: DELETED_SYM: simbolo/biblioteca

(biblioteca sarà "non associato" se il simbolo non era associato)

Se un'intera libreria è stata eliminata in qualche versione o è altrimenti instabile per
uso:
Nome del file:INSTABILE_LIB: libreria-soname = percorso-biblioteca

(percorso-biblioteca potrebbe essere "file non trovato" se non è stato possibile trovare la libreria)

I seguenti problemi causeranno un errore irreversibile a meno che il -k viene utilizzata l'opzione:

Se il linker dinamico non può risolversi N simboli quando ldd -r è stato eseguito:
Nome del file: SIMBOLI_UNBOUND: N

Se il linker dinamico non ha trovato associazioni dinamiche:
Nome del file: NESSUN_BINDING

If ldd -r con LD_DEBUG=file, associazioni fallito:
Nome del file: LDD_ERRORE

In questi ultimi tre casi corrono ldd -r sul file binario per ulteriori informazioni su cosa
è andato storto (nota che abicheck corre ldd -r con LD_DEBUG=file, associazioni set). su alcuni
sistemi con cui il linker dinamico non elaborerà i programmi SUID LD_DEBUG set (questo di solito
risultati in NESSUN_BINDING nel abicheck produzione).

Nota che se stai eseguendo abicheck su una libreria condivisa (ad esempio, libfoo.so) questo
ha non stato costruito con -l lib flag per registrare le sue dipendenze di libreria, quindi "unbound
simboli" è molto probabile. Non c'è molto che si possa fare oltre a ricostruire il
libreria o controllando un binario dell'applicazione che usa la libreria e usando il -l possibilità di
abicheck.

EXIT STATUS


Vengono restituiti i seguenti valori di uscita:

0 Nessun errore e nessun problema riscontrato.

1 Si è verificato un errore fatale.

2 Non si sono verificati errori irreversibili, ma alcuni file binari hanno riscontrato problemi.

NOTE


Vengono selezionati solo gli oggetti ELF.

Nel -s -S -d ed -O dbfiles il carattere '#' inizia una riga di commento nel solito modo.

A meno che non si utilizzino le corrispondenze personalizzate "::" fornite tramite il -p or -e bandiere, abicheck può
controlla solo con le librerie di sistema a cui è stato applicato il controllo delle versioni dei simboli (ad es
le informazioni private e/o evolutive registrate per ogni simbolo nella libreria stessa).
Per ulteriori informazioni sul controllo delle versioni dei simboli, vedere "Solaris Linker and Libraries Guide"
risposta all'URL http://docs.sun.com/ab2/coll.45.13 e il Commands/Version-Script
sezione della pagina informativa "ld" del linker GNU.

I modelli di corrispondenza del nome della versione del simbolo predefinito sono corrispondenze senza distinzione tra maiuscole e minuscole per il
stringhe "private" e "evolving" rispettivamente per i casi privati ​​e in evoluzione.

I nomi di file dispari contenenti il ​​carattere di virgolette singole o la nuova riga verranno saltati; tale
i caratteri interferiscono con la chiamata di comandi tramite la shell.

Per ricorrere alle directory utilizzare Find(1) e raccogliere l'output in un file per utilizzarlo con
, il -f opzione, o in un tubo in via:

trova... | abicheck -f - ...

Utilizzare abicheck online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad