InglesPransesEspanyol

Ad


OnWorks favicon

abicheck - Online sa Cloud

Patakbuhin ang abicheck sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command abicheck na maaaring patakbuhin sa OnWorks free hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


abicheck - suriin ang mga binary ng application para sa mga tawag sa pribado o umuusbong na mga simbolo sa
library at para sa static linking ng ilang system library.

SINOPSIS


abicheck [-h] [-k] [-a] [-I] [-v] [-f listfile] [-alinman outfile] [-p pattern] [-e pattern] [-j
njobs] [-l aklatan] [-L ldpath] [(-s|-S) dbfile] [(-d|-D) dbfile] [-O dbfile] [-A
listfile] file

DESCRIPTION


abicheck ay tumatakbo sa mga binary ng application at nagbibigay ng mga babala sa tuwing alinman sa mga sumusunod
tatlong kondisyon ang nakita:

· pribado simbolo paggamit. Ang mga pribadong simbolo ay mga function o variable ng data sa isang library
package na panloob sa package na iyon. Ginagamit ang mga ito ng mga aklatan sa pakete
para sa panloob na komunikasyon at hindi bahagi ng API/ABI na mga developer ng application
dapat gamitin.

· Nagbabago simbolo paggamit. Ang mga nagbabagong simbolo ay mga function o variable ng data sa isang library
package na inilaan para sa pagkonsumo ng developer, ngunit minarkahan bilang "nagbabago" o
"hindi matatag" sa kahulugan na maaari silang maging hindi tugma o mawala sa susunod na paglabas
ng pakete ng aklatan.

· Statik pag-uugnay. Static na pag-link ng mga library ng system (halimbawa, libc.a) sa isang
Ang application ay karaniwang hindi isang magandang ideya dahil ang system library code na ito ay "naka-lock" sa
ang binary ng application ay maaaring maging hindi tugma sa mga susunod na release ng system. abicheck
sinusubukang tuklasin ang static na pag-link ng ilang mga library ng system.

Ang default na gawi ay, para sa bawat binary object na nasuri, upang suriin ang mga direktang tawag mula doon
binary object lamang. Ang -l pinapayagan ng opsyon ang mga aklatan na dinadala ng binary object upang magkaroon
na-check din ang mga tawag nila.

Opsyon


Ang mga sumusunod na opsyon ay sinusuportahan:

-k Patuloy na suriin ang mga binary kahit na may mga malubhang error (mga ulat ng dynamic na linker
hindi nalutas na mga simbolo, ldd(1) mga pagkabigo, walang nakitang mga simbolo).

-h Mag-print ng mahabang anyo ng tulong.

-v Verbose. Mag-print ng karagdagang impormasyon.

-f listfile
Ang listfile ay isang file na naglalaman ng isang listahan ng mga binary na bagay na susuriin, isa sa bawat linya.
Ang listahang ito ay idinagdag sa anumang mga file na ibinigay bilang mga argumento sa command line. Kung
listfile ay "-", pagkatapos ay ginagamit ang stdin.

-o outfile
Isulat ang output sa outfile sa halip na stdout.

-p huwaran
Baguhin ang pattern ng pangalan ng bersyon na tumutugma sa label na mga set ng pribadong bersyon. Default ay
/pribado/ gamit ang isang case-insensitive na tugma.

Kung isang bahagi ng regex huwaran naglalaman ng dalawang colon sa isang hilera: patt1::patt2,
pagkatapos ay isaaktibo ang pagtutugma sa antas ng simbolo sa pamamagitan ng pagsuri kung bersyon::simbolo or
library::simbolo posporo huwaran (kung saan ang pangalan ng simbolo, bersyon (kung mayroon), at
Ang basename ng library ay pinalitan simbolo, bersyon, at aklatan). Halimbawa,

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

-e huwaran
Katulad ng -p ngunit para sa "nagbabago" na mga interface.

-L ldpath
Itakda ang LD_LIBRARY_PATH variable ng kapaligiran sa ldpath bago mag-invoke ng dynamic
linker. Gamitin -L "" para i-unset LD_LIBRARY_PATH.

Kung isa sa mga bahagi ng ldpath ay ang string na "hanapin", pagkatapos ay ang lahat ng mga nakabahaging aklatan
in file ay natagpuan at ang kanilang mga landas ay ipinasok sa "hanapin" na lokasyon. Tandaan na
ang order ay random.

-l aklatan
Idagdag ang basename o buong pathname ng shared library aklatan sa listahan ng
mga bagay na susuriin para sa paggawa ng mga pribadong tawag. Ang pagpipiliang ito ay maaaring mangyari nang higit sa
isang beses sa command line at additive. Bilang default, mga direktang tawag lang mula sa a
binary sa mga library ng system ay nasuri. Ang -l switch ay nagbibigay-daan sa pagsuri ng
hindi direktang mga tawag hal: app -> supportlib -> systemlib.

-a I-loop ang lahat ng binary bago suriin at kolektahin ang listahan ng lahat ng ibinahagi
mga bagay. Kunin ang basename ng bawat nakabahaging bagay na natagpuan at kumilos na parang ito
tinukoy kasama ang -l opsyon na opsyon at pagkatapos ay patakbuhin ang abicheck checks. Sa ganitong paraan,
ang mga tawag mula sa lahat ng "application internal" na mga bagay ay sinusuri sa halip na ang
mga direktang tawag. (Kapaki-pakinabang kapag ang mga nakabahaging bagay ay walang dependencies
naitala.)

-I Huwag pansinin ang mga nakabahaging aklatan sa pagsuri, tingnan lamang ang mga executable. Katugma sa -a,
Ang mga aklatan ay hahanapin muna ngunit pagkatapos ay hindi susuriin.

-d dbfile, -D dbfile
Tukuyin ang fallback na flat-file na simbolo ng database para sa dynamic (pampubliko vs. pribado)
pagsusulit. Ang mga pag-uuri na ito ay gagamitin kung ang aklatan ay hindi bersyon (hal
ang pag-uuri ay hindi umiiral sa aklatan mismo). Gamitin -D upang ipahiwatig na lamang
impormasyon mula sa dbfile dapat gamitin. Mga linya sa dbfile maaaring isa sa mga ito
mga form:

library|simbolo
library|klase|simbolo
library|FILE=path

aklatan Dapat ay ang buong landas patungo sa aklatan upang matukoy (hindi ito maaaring a
basename).

Ang unang anyo ay nagmamarka simbolo bilang pribado.

Ang pangalawang anyo ay nagmamarka simbolo sa klase saan klase maaaring pampubliko, pribado, o
umuunlad.

Ang ikatlong form ay nagpapahiwatig ng file landas dapat buksan on demand kung kailan aklatan is
unang nakatagpo. file landas naglalaman ng mga linya ng unang dalawang anyo maliban sa
aklatan patlang. Ang ikatlong anyo ay isang pagpapabilis upang maiwasan ang pagproseso ng maraming pag-uuri
mga linya para sa mga aklatan na hindi kailanman nakatagpo sa pagtakbo.

-O dbfile
Tumukoy ng override na file para baguhin ang klasipikasyon ng simbolo para sa dynamic
(pampubliko kumpara sa pribado) na pagsubok. Ang format para sa override na file ay tulad ng:

library|simbolo|klase

Ang library ay maaaring ang buong path o basename. Kung ang library ay "__SKIP__" ang simbolo
ay hindi papansinin para sa anumang aklatan kung saan ito matatagpuan. Ang klase ay maaaring "pampubliko",
"pribado", "nagbabago", o "tinanggal". Ang "tinanggal" na klase ay espesyal na kaso, ibig sabihin
ang simbolo ay tinanggal mula sa library sa ilang release. Ang simbolo na "__LAHAT__" para sa
ang "tinanggal" na klase ay nangangahulugan na ang buong library ay tinanggal o kung hindi man ay hindi matatag
gamitin.

Halimbawa:

libfoo.so.1|__bar|pribado
/lib/libxyz.so.1|baz|publiko
__SKIP__|__fputwc_xpg5

In-override ng mga setting na ito ang anumang pag-uuri sa loob ng library (mula sa library
bersyon, makukuha mula sa pvs(1), atbp).

-A listfile
Itakda ang mga library ng interes ng ABI sa mga library na nakalista listfile (buo
mga pathname, isa sa bawat linya). Ang mga tawag lamang sa mga aklatang ito ang susuriin; lahat
iba pang mga tawag sa library ay hindi papansinin.

-s dbfile, -S dbfile
Tukuyin ang mas malawak na mga database ng simbolo para sa static na pagsubok sa pag-link. dbfile maaaring hindi
isang listahan ng mga file na pinaghihiwalay ng kuwit. Kung ang isang file ay isang static na archive (lib*.a) ito ay
naproseso upang kunin ang mga simbolo. Kung hindi, ito ay isang database file na binubuo ng
mga linya ng form na simbolo|library:module halimbawa:

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

Kapag ang lahat ng mga simbolo sa isang module.o ay tinukoy sa application, ang static na pag-link ng
ang module na iyon (at ang kaukulang archive ng library) ay ipinapalagay. Gamitin -S upang ipahiwatig
na tanging ang static link test lang ang dapat gawin.

paggamit -S int na gawin lamang ang static link check at gamit ang panloob na database.

paggamit -s wala or -S wala upang laktawan ang static na pagsusuri sa pag-link nang buo.

-j njobs
Tumakbo njobs kahanay bilang magkahiwalay na mga proseso. Nagpapahiwatig -k. Pangunahing nilayon para sa
maramihang CPU machine kung saan njobs dapat na malapit sa bilang ng mga processor.
Kinokolekta ang output sa mga tmp file at ini-print nang sabay-sabay malapit sa dulo ng run as
matatapos ang bawat trabaho.

If njobs ay "-", "detect", o "n", pagkatapos njobs ay itatakda sa isang numero depende sa
ang bilang ng mga processor sa kasalukuyang makina (kung matutukoy iyon).

MGA OPERAND


Ang mga sumusunod na operand ay sinusuportahan:

file Isang listahan ng mga binary object ng application na susuriin.

oUTPUT


Mayroong isang linya sa bawat problema (maaaring maraming mga problema sa bawat binary check) na
hitsura ng mga sumusunod:

Kung walang nakitang mga problema:
filename: SIGE

Kung gumagamit ng pribadong simbolo:
filename: PRIBADO (aklatan:pribadong_bersyon) private_sym

Kung umuusbong ang paggamit ng simbolo:
filename: NAG-EVOLV (aklatan:evolving_vers) evolving_sym

Kung ang file ay statically naka-link sa isang system archive library:
filename: STATIC_LINK (archive)

Kung ang pagsuri sa file ay nilaktawan:
filename: SKIP (dahilan)

Sa ilalim ng paggamit ng tinanggal na klase sa -O i-override ang opsyon sa file, maaaring ang mga problemang ito
natagpuan:

Kung ang isang simbolo ay tinanggal mula sa library sa ilang release:
filename: DELETED_SYM: simbolo/aklatan

(aklatan magiging "unbound" kung ang simbolo ay unbound)

Kung ang isang buong library ay tinanggal sa ilang release o kung hindi man ay hindi matatag sa
gamitin ang:
filename: UNSTABLE_LIB: library-sonname = landas-aklatan

(landas-aklatan maaaring "file not found" kung hindi mahanap ang library)

Ang mga sumusunod na problema ay magdudulot ng nakamamatay na error maliban kung ang -k ginagamit ang pagpipilian:

Kung hindi malutas ng dynamic na linker N mga simbolo kung kailan ldd -r ay tumakbo:
filename: UNBOUND_SYMBOLS: N

Kung walang nakitang mga dynamic na binding ang dynamic na linker:
filename: WALANG_BINDINGS

If ldd -r sa LD_DEBUG=mga file, mga binding nabigo:
filename: LDD_ERROR

Sa huling tatlong kaso na ito ay tumatakbo ldd -r sa binary file para sa karagdagang impormasyon sa kung ano
nagkamali (tandaan na abicheck tumatakbo ldd -r sa LD_DEBUG=mga file, mga binding itakda). Sa ilan
mga system na hindi ipoproseso ng dynamic na linker ang mga SUID program LD_DEBUG set (karaniwan ito
mga resulta WALANG_BINDINGS nasa abicheck output).

Tandaan na kung nagpapatakbo ka ng abicheck sa isang shared library (halimbawa, libfoo.so) iyon
ay hindi ay binuo gamit ang -l lib mga flag upang itala ang mga dependency ng library nito, pagkatapos ay ang "unbound
symbols" malaki ang posibilidad na problema. Walang gaanong magagawa bukod sa muling pagtatayo ng
library o pagsuri sa binary ng application na gumagamit ng library at gumagamit ng -l opsyon ng
abicheck.

EXIT STATUS


Ang mga sumusunod na exit value ay ibinalik:

0 Walang mga error at walang nakitang mga problema.

1 Isang malalang error ang naganap.

2 Walang naganap na malalang mga error, ngunit may mga natukoy na problema ang ilang binary.

NOTA


Tanging ang mga bagay na ELF ang sinusuri.

Sa -s -S -d at -O dbfiles ang character na '#' ay nagsisimula ng isang linya ng komento sa karaniwang paraan.

Maliban kung ang isa ay gumagamit ng "::" custom na mga tugma na ibinigay sa pamamagitan ng -p or -e mga flag, abicheck pwede
suriin lamang laban sa mga library ng system na may inilapat na bersyon ng simbolo sa kanila (hal
ang pribado at/o umuusbong na impormasyon na naitala para sa bawat simbolo sa aklatan mismo).
Para sa higit pang impormasyon tungkol sa bersyon ng simbolo, tingnan ang "Solaris Linker at Gabay sa Mga Aklatan"
answerbook sa URL http://docs.sun.com/ab2/coll.45.13 at ang Commands/Bersyon-Script
seksyon ng GNU linker "ld" na pahina ng impormasyon.

Ang default na mga pattern ng pagtutugma ng pangalan ng bersyon ng simbolo ay mga case insensitive na mga tugma sa
mga string na "pribado" at "nagbabago" para sa pribado at umuusbong na mga kaso, ayon sa pagkakabanggit.

Ang mga kakaibang filename na naglalaman ng single-quote na character o newline ay lalaktawan; ganyan
ang mga character ay nakakasagabal sa pagtawag ng mga command sa pamamagitan ng shell.

Upang muling gamitin ang mga direktoryo mahanap(1) at alinman sa kolektahin ang output sa isang file para magamit sa
ang -f opsyon, o sa isang pipe sa pamamagitan ng:

hanapin ... | abicheck -f - ...

Gumamit ng abicheck online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad