İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

abicheck - Bulutta Çevrimiçi

Abicheck'i Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen abicheck komutudur.

Program:

ADI


abicheck - özel veya gelişen sembollere yapılan çağrılar için uygulama ikili dosyalarını kontrol edin
kitaplıklar ve bazı sistem kitaplıklarının statik bağlantısı için.

SİNOPSİS


Abicheck [-h] [-k] [-a] [-I] [-v] [-f liste dosyası] [-veya dosya] [-P Desen] [-e Desen] [-J
nişler] [-l kütüphane] [-L yol] [(-s|-S) db dosyası] [(-d|-D) db dosyası] [-Ö db dosyası] [-A
liste dosyası] Dosyaları

TANIM


Abicheck uygulama ikili dosyalarında çalıştırılır ve aşağıdakilerden herhangi biri olduğunda uyarı verir
üç koşul tespit edilir:

· Özel Etkinlik sembol kullanımı. Özel semboller, bir kitaplıktaki işlevler veya veri değişkenleridir.
o paketin içindeki paket. Paketteki kütüphaneler tarafından kullanılırlar.
dahili iletişim için ve uygulama geliştiricilerin kullandığı API/ABI'nin bir parçası değildir.
kullanmalı.

· gelişen sembol kullanımı. Gelişen semboller, bir kütüphanedeki fonksiyonlar veya veri değişkenleridir.
geliştirici tüketimi için tasarlanmış, ancak "gelişmekte" olarak işaretlenmiş veya
Uyumsuz hale gelebilecekleri veya sonraki bir sürümde kaybolabilecekleri anlamında "kararsız"
kütüphane paketinden.

· Statik bağlama. Sistem kitaplıklarının (örneğin, libc.a) bir dosyaya statik olarak bağlanması
uygulama genellikle iyi bir fikir değildir çünkü sistem kitaplığı kodu "kilitlenir"
uygulama ikili dosyası, sistemin sonraki sürümleriyle uyumsuz hale gelebilir. abicheck
birkaç sistem kitaplığının statik bağlantısını algılamaya çalışır.

Varsayılan davranış, kontrol edilen her ikili nesne için o nesneden gelen doğrudan çağrıları incelemektir.
yalnızca ikili nesne. NS -l seçeneği, ikili nesnenin getirdiği kitaplıkların sahip olmasını sağlar
aramaları da kontrol edildi.

SEÇENEKLER


Aşağıdaki seçenekler desteklenir:

-k Ciddi hatalar olsa bile ikili dosyaları kontrol etmeye devam edin (dinamik bağlayıcı raporları
çözülmemiş semboller, dd(1) arızalar, sembol algılanmadı).

-h Uzun yardım formunu yazdırın.

-v ayrıntılı. Ek bilgileri yazdırın.

-f liste dosyası
The liste dosyası her satırda bir kontrol edilecek ikili nesnelerin listesini içeren bir dosyadır.
Bu liste, komut satırında bağımsız değişken olarak sağlanan tüm dosyalara eklenir. Eğer
liste dosyası "-" ise stdin kullanılır.

-o dış dosya
çıktıyı şuraya yaz: dış dosya stdout'un yerine.

-p model
Özel sürüm kümelerini etiketleyen sürüm adı kalıbı eşleşmesini değiştirin. Varsayılan
/özel/ büyük/küçük harfe duyarsız bir eşleşme kullanarak.

Normal ifadenin bir bileşeni ise model arka arkaya iki iki nokta üst üste içerir: patt1::patt2,
olup olmadığı kontrol edilerek sembol düzeyinde eşleştirme etkinleştirilecektir. sürüm::sembol or
kitaplık::sembol maçlar model (burada sembol adı, versiyonu (varsa) ve
kütüphane taban adı yerine sembol, versiyon, ve kütüphane). Örneğin,

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

-e model
Aynısı -p ancak "gelişen" arayüzler için.

-L yol
Yı kur LD_LIBRARY_PATH ortam değişkeni yol dinamik çağırmadan önce
bağlayıcı. Kullanmak -L "" ayarını kaldırmak için LD_LIBRARY_PATH.

bileşenlerinden biri ise yol "find" dizesidir, ardından tüm paylaşılan kitaplıklar
in Dosyaları bulunur ve yolları "bul" konumuna eklenir. Bunu not et
sipariş rastgele olacak.

-l kütüphane
Paylaşılan kitaplığın temel adını veya tam yolunu ekleyin kütüphane listesine
özel aramalar yapmak için kontrol edilecek nesneler. Bu seçenek birden fazla oluşabilir
bir kez komut satırında ve katkı maddesidir. Varsayılan olarak, yalnızca doğrudan aramalar bir
sistem kitaplıklarına ikili kontrol edilir. NS -l anahtarı kontrol edilmesini sağlar
dolaylı çağrılar örneğin: app -> supportlib -> systemlib.

-a Tüm paylaşılanların listesini kontrol etmeden ve toplamadan önce tüm ikili dosyalar arasında dolaşın.
nesneler. Bulunan her paylaşılan nesnenin temel adını alın ve sanki
ile belirtilen -l seçenek seçeneğini seçin ve ardından abicheck kontrollerini çalıştırın. Bu yoldan,
tüm "uygulama dahili" nesnelerinden gelen çağrılar, yalnızca
doğrudan aramalar. (Paylaşılan nesnelerin bağımlılıkları olmadığında kullanışlıdır
kaydedildi.)

-I Kontrol sırasında paylaşılan kitaplıkları yok sayın, yalnızca yürütülebilir dosyaları kontrol edin. İle uyumlu -A,
kütüphaneler önce aranacak, ancak daha sonra kontrol edilmeyecektir.

-d db dosyası, -D db dosyası
Dinamik (genel ve özel) için yedek düz dosya sembolü veritabanını belirtin
Ölçek. Bu sınıflandırmalar, kütüphanenin versiyonlanmamış olması durumunda kullanılacaktır (ör.
sınıflandırma kütüphanenin kendisinde mevcut değildir). Kullanmak -D sadece bunu belirtmek için
den bilgi db dosyası kullanılmalıdır. satırlar db dosyası bunlardan biri olabilir
formlar:

kütüphane|sembol
kütüphane|sınıf|sembol
kitaplık|DOSYA=yol

kütüphane belirtilecek kitaplığın tam yolu olmalıdır (bir
temel adı).

İlk form işaretleri sembol özel olarak.

İkinci form işaretleri sembol ile sınıf nerede sınıf genel, özel veya
gelişen.

Üçüncü form dosyayı gösterir yol talep üzerine açılmalıdır kütüphane is
ilk karşılaşıldı. Dosya yol dışında ilk iki formun satırlarını içerir
kütüphane alan. Üçüncü form, birçok sınıflandırmayı işlemekten kaçınmak için bir hızlandırmadır.
çalıştırmada hiç karşılaşılmayan kitaplıklar için satırlar.

-O db dosyası
Dinamik için sembol sınıflandırmasını değiştirmek için bir geçersiz kılma dosyası belirtin.
(genel vs. özel) testi. Geçersiz kılma dosyasının biçimi şöyledir:

kütüphane|sembol|sınıf

Kitaplık tam yol veya temel ad olabilir. Kitaplık "__SKIP__" ise sembol
bulunduğu herhangi bir kitaplık için yok sayılır. Sınıf "genel" olabilir,
"özel", "gelişen" veya "silindi". "Silinmiş" sınıf özel kasadır, şu anlama gelir:
sembol, bazı sürümlerde kitaplıktan silindi. için "__ALL__" sembolü
"silinmiş" sınıf, tüm kitaplığın silindiği veya başka türlü kararsız olduğu anlamına gelir
kullanmak.

Örnekler:

libfoo.so.1|__bar|özel
/lib/libxyz.so.1|baz|genel
__SKIP__|__fputwc_xpg5

Bu ayarlar, kitaplık içindeki herhangi bir sınıflandırmayı geçersiz kılar (kütüphaneden
versiyonlama, adresinden edinilebilir pv'ler(1), vb.).

-A liste dosyası
İlgilendiğiniz ABI kitaplıklarını, içinde listelenen kitaplıklara ayarlayın. liste dosyası (tam
yol adları, satır başına bir tane). Yalnızca bu kitaplıklara yapılan çağrılar kontrol edilecektir; herşey
diğer kütüphane çağrıları yoksayılacaktır.

-s db dosyası, -S db dosyası
Statik bağlama testi için daha kapsamlı sembol veritabanları belirtin. db dosyası olabilir
virgülle ayrılmış dosya listesi. Bir dosya statik bir arşiv ise (lib*.a)
sembolleri çıkarmak için işlenir. Aksi takdirde, aşağıdakilerden oluşan bir veritabanı dosyasıdır.
sembol|kütüphane:modül formunun satırları örneğin:

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

Bir modül.o içindeki tüm semboller uygulamada tanımlandığında, statik bağlantı
bu modül (ve ilgili kütüphane arşivi) varsayılır. Kullanmak -S belirtmek için
sadece statik bağlantı testi yapılmalıdır.

kullanım -S int sadece statik bağlantı kontrolü yapmak ve dahili veritabanını kullanmak.

kullanım -s Yok or -S Yok statik bağlantı kontrolünü tamamen atlamak için.

-j nişler
koşmak nişler ayrı süreçler olarak paralel olarak. ima -k. Öncelikle amaçlanan
çoklu CPU makineleri nerede nişler işlemci sayısına yakın olmalıdır.
Çıktı tmp dosyalarında toplanır ve çalıştırmanın sonuna doğru bir kerede yazdırılır.
her iş biter.

If nişler "-", "tespit" veya "n" ise nişler bağlı olarak bir sayıya ayarlanacaktır.
mevcut makinedeki işlemci sayısı (eğer belirlenebilirse).

İŞLENENLER


Aşağıdaki işlenenler desteklenir:

Dosyaları Kontrol edilecek uygulama ikili nesnelerinin listesi.

ÇIKTI


Sorun başına bir satır vardır (kontrol edilen ikili dosya başına birden fazla sorun olabilir)
aşağıdaki gibi görünün:

Herhangi bir sorun bulunmadıysa:
Dosya: Tamam

Özel sembol kullanımı ise:
dosya adı: ÖZEL (kütüphane:özel_sürüm) özel_sym

Gelişen sembol kullanımı ise:
Dosya: GELİŞEN (kütüphane:gelişen_vers) gelişen_sym

Dosya bir sistem arşiv kitaplığında statik olarak bağlıysa:
Dosya: STATIC_LINK (arşiv)

Dosyanın kontrolü atlandıysa:
Dosya: ATLAMAK (neden)

Silinen sınıfın kullanımı altında -O dosya seçeneğini geçersiz kıl, bu sorunlar olabilir
bulunan:

Bazı sürümlerde kitaplıktan bir sembol silinmişse:
Dosya: DELETED_SYM: sembol/kütüphane

(kütüphane sembol bağlı değilse "bağsız" olacaktır)

Bir kitaplığın tamamı bir sürümde silinmişse veya başka bir şekilde kararsızsa
kullanımı:
Dosya: STABLE_LIB: kütüphane-soname = kitaplık yolu

(kitaplık yolu kitaplık bulunamadıysa "dosya bulunamadı" olabilir)

Aşağıdaki sorunlar önemli bir hataya neden olacaktır: -k seçenek kullanılır:

Dinamik bağlayıcı çözülemezse N semboller ne zaman dd -r koşuyordu:
Dosya: BOUND_SYMBOLS: N

Dinamik bağlayıcı hiçbir dinamik bağlama bulamadıysa:
Dosya: YOK_BAĞLAMALAR

If dd -r ile LD_DEBUG=dosyalar,bağlar başarısız oldu:
Dosya: LDD_ERROR

Bu son üç durumda çalıştırın dd -r ne hakkında daha fazla bilgi için ikili dosyada
yanlış gitti (buna dikkat edin Abicheck ishal dd -r ile LD_DEBUG=dosyalar,bağlar Ayarlamak). Bazı
dinamik bağlayıcının SUID programlarını işlemeyeceği sistemler LD_DEBUG ayarlayın (bu genellikle
içinde sonuç NO_BAĞLAMALAR içinde Abicheck çıktı).

Abicheck'i paylaşılan bir kitaplıkta (örneğin, libfoo.so) çalıştırıyorsanız, bunun
vardır değil ile inşa edildi -l lib kitaplık bağımlılıklarını kaydetmek için bayraklar, ardından "bağsız
semboller" sorunu çok olasıdır.
kitaplığı kullanan veya kitaplığı kullanan bir uygulama ikili dosyasını kontrol eden ve -l seçeneği
abicheck

EXIT DURUMU


Aşağıdaki çıkış değerleri döndürülür:

0 Hata ve sorun bulunamadı.

1 Önemli bir hata oluştu.

2 Hiçbir önemli hata oluşmadı, ancak bazı ikili dosyalarda sorun tespit edildi.

NOTLAR


Yalnızca ELF nesneleri kontrol edilir.

içinde -s -S -d ve -O dbfiles '#' karakteri her zamanki gibi bir yorum satırı başlatır.

Biri tarafından sağlanan "::" özel eşleşmeleri kullanmadıkça -p or -e bayraklar, abicheck can
yalnızca kendilerine sembol versiyonlaması uygulanmış sistem kitaplıklarını kontrol edin (örn.
kütüphanenin kendisinde her bir sembol için kaydedilen özel ve/veya gelişen bilgi).
Sembol sürümü oluşturma hakkında daha fazla bilgi için "Solaris Linker ve Kitaplıklar Kılavuzu"na bakın.
URL'deki cevap kitabı http://docs.sun.com/ab2/coll.45.13 ve Komutlar/Sürüm-Komut Dosyası
GNU bağlayıcı "ld" bilgi sayfasının bölümü.

Varsayılan sembol sürümü adı eşleştirme kalıpları, büyük/küçük harfe duyarsız eşleşmelerdir.
sırasıyla özel ve gelişen durumlar için "özel" ve "gelişen" dizeleri.

Tek tırnak karakteri veya yeni satır içeren tek dosya adları atlanır; çok
karakterler, kabuk aracılığıyla komutların çağrılmasına müdahale eder.

Dizinleri tekrarlamak için kullanın bulmak(1) ve çıktıyı birlikte kullanmak üzere bir dosyaya toplayın
the -f seçenek veya şu yolla bir boruda:

bul... | abicheck -f - ...

onworks.net hizmetlerini kullanarak abicheck'i çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad