InggrisPerancisSpanyol

Ad


favorit OnWorks

abicheck - Online di Cloud

Jalankan abicheck di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

Ini adalah perintah abicheck yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


abicheck - periksa binari aplikasi untuk panggilan ke simbol pribadi atau simbol yang berkembang di
perpustakaan dan untuk menghubungkan statis beberapa perpustakaan sistem.

RINGKASAN


abicheck [-h] [-k] [-a] [-I] [-v] [-f file daftar] [-atau berkas keluar] [-P pola] [-e pola] [-J
pekerjaan] [-l Perpustakaan] [-L jalur] [(-s|-S) file db] [(-d|-D) file db] [-HAI file db] [-SEBUAH
file daftar] arsip

DESKRIPSI


abicheck dijalankan pada binari aplikasi dan mengeluarkan peringatan setiap kali salah satu dari yang berikut:
tiga kondisi terdeteksi:

· Swasta simbol pemakaian. Simbol pribadi adalah fungsi atau variabel data di perpustakaan
paket yang ada di dalam paket itu. Mereka digunakan oleh perpustakaan dalam paket
untuk komunikasi internal dan bukan bagian dari API/ABI yang pengembang aplikasi
harus menggunakan.

· Berkembang simbol pemakaian. Simbol yang berkembang adalah fungsi atau variabel data di perpustakaan
paket yang ditujukan untuk konsumsi pengembang, tetapi telah ditandai sebagai "berkembang" atau
"tidak stabil" dalam arti bahwa mereka mungkin menjadi tidak kompatibel atau menghilang pada rilis berikutnya
dari paket perpustakaan.

· Statis menghubungkan. Penautan statis pustaka sistem (misalnya, libc.a) ke dalam
aplikasi umumnya bukan ide yang baik karena kode perpustakaan sistem yang "dikunci" ke dalam
biner aplikasi mungkin menjadi tidak kompatibel dengan rilis sistem selanjutnya. abicheck
mencoba mendeteksi tautan statis dari beberapa pustaka sistem.

Perilaku default adalah, untuk setiap objek biner diperiksa, untuk memeriksa panggilan langsung dari itu
objek biner saja. NS -l opsi memungkinkan perpustakaan yang dibawa objek biner untuk dimiliki
panggilan mereka diperiksa juga.

PILIHAN


Opsi berikut didukung:

-k Terus periksa binari bahkan jika ada kesalahan serius (laporan tautan dinamis
simbol yang belum terselesaikan, ldd(1) kegagalan, tidak ada simbol yang terdeteksi).

-h Cetak bentuk bantuan yang panjang.

-v bertele-tele. Cetak informasi tambahan.

-f daftar file
Grafik daftar file adalah file yang berisi daftar objek biner untuk diperiksa, satu per baris.
Daftar ini ditambahkan ke file apa pun yang disediakan sebagai argumen di baris perintah. Jika
daftar file adalah "-", maka stdin digunakan.

-o file keluar
Tulis keluaran ke file keluar bukannya stdout.

-p belt hold
Ubah pola nama versi yang cocok dengan pelabelan kumpulan versi pribadi. Standarnya adalah
/pribadi/ menggunakan pencocokan case-insensitive.

Jika komponen dari regex belt hold berisi dua titik dua berturut-turut: patt1::patt2,
maka pencocokan level simbol akan diaktifkan dengan memeriksa apakah versi::simbol or
perpustakaan::simbol korek api belt hold (di mana nama simbol, versi (jika ada), dan
nama dasar perpustakaan diganti dengan simbol, versi, dan perpustakaan). Sebagai contoh,

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

-e belt hold
Sama dengan -p tetapi untuk antarmuka "berkembang".

-L jalan raya
Mengatur LD_LIBRARY_PATH variabel lingkungan menjadi jalan raya sebelum memanggil dinamis
penghubung Menggunakan -L "" untuk membatalkan penyetelan LD_LIBRARY_PATH.

Jika salah satu komponen dari jalan raya adalah string "temukan", lalu semua perpustakaan bersama
in arsip ditemukan dan jalurnya dimasukkan ke dalam lokasi "temukan". Perhatikan bahwa
pesanan akan acak.

-l perpustakaan
Tambahkan nama dasar atau nama path lengkap dari perpustakaan bersama perpustakaan ke daftar
objek yang akan diperiksa untuk melakukan panggilan pribadi. Opsi ini dapat terjadi lebih dari
sekali pada baris perintah dan aditif. Secara default, hanya panggilan langsung dari a
biner ke perpustakaan sistem diperiksa. NS -l sakelar memungkinkan pemeriksaan
panggilan tidak langsung misalnya: app -> supportlib -> systemlib.

-a Ulangi semua binari sebelum memeriksa dan mengumpulkan daftar semua yang dibagikan
objek. Ambil nama dasar dari setiap objek bersama yang ditemukan dan bertindak seolah-olah itu
ditentukan dengan -l opsi opsi dan kemudian jalankan pemeriksaan abicheck. Cara ini,
panggilan dari semua objek "internal aplikasi" diperiksa, bukan hanya
panggilan langsung. (Berguna ketika objek yang dibagikan tidak memiliki ketergantungannya
tercatat.)

-I Abaikan pustaka bersama dalam pemeriksaan, hanya periksa yang dapat dieksekusi. Cocok dengan -Sebuah,
perpustakaan akan dicari terlebih dahulu tetapi kemudian tidak diperiksa.

-d file db, -D file db
Tentukan database simbol file datar fallback untuk dinamis (publik vs. pribadi)
tes. Klasifikasi ini akan digunakan jika perpustakaan tidak berversi (mis
klasifikasi tidak ada di perpustakaan itu sendiri). Menggunakan -D untuk menunjukkan bahwa hanya
informasi dari file db seharusnya digunakan. Garis masuk file db bisa salah satunya
formulir:

perpustakaan|simbol
perpustakaan|kelas|simbol
perpustakaan|FILE=jalur

perpustakaan harus path lengkap ke perpustakaan yang akan ditentukan (tidak boleh a
nama dasar).

Tanda bentuk pertama simbol sebagai pribadi.

Bentuk kedua menandai simbol dengan kelas dimana kelas mungkin publik, swasta, atau
berkembang.

Bentuk ketiga menunjukkan file path harus dibuka sesuai permintaan ketika perpustakaan is
pertama kali ditemui. Mengajukan path berisi garis dari dua bentuk pertama kecuali untuk
perpustakaan bidang. Bentuk ketiga adalah percepatan untuk menghindari pemrosesan banyak klasifikasi
baris untuk perpustakaan tidak pernah ditemui dalam menjalankan.

-O file db
Tentukan file override untuk mengubah klasifikasi simbol untuk dinamis
(publik vs. pribadi) tes. Format untuk file override seperti:

perpustakaan|simbol|kelas

Pustaka dapat berupa path lengkap atau nama dasar. Jika perpustakaan adalah "__SKIP__" simbolnya
akan diabaikan untuk perpustakaan apa pun yang ditemukan. Kelasnya bisa "publik",
"pribadi", "berkembang", atau "dihapus". Kelas yang "dihapus" adalah kelas khusus, artinya
simbol telah dihapus dari perpustakaan pada beberapa rilis. Simbol "__ALL__" untuk
kelas "dihapus" berarti seluruh perpustakaan telah dihapus atau tidak stabil
menggunakan.

contoh:

libfoo.so.1|__bar|pribadi
/lib/libxyz.so.1|baz|publik
__SKIP__|__fputwc_xpg5

Pengaturan ini mengesampingkan klasifikasi apa pun di dalam perpustakaan (dari perpustakaan
versi, dapat diperoleh dari pv(1), dll).

-A daftar file
Setel perpustakaan ABI yang menarik ke perpustakaan yang terdaftar di daftar file (penuh
nama path, satu per baris). Hanya panggilan ke perpustakaan ini yang akan diperiksa; semua
panggilan perpustakaan lainnya akan diabaikan.

-s file db, -S file db
Tentukan database simbol yang lebih luas untuk uji penautan statis. file db mungkin
daftar file yang dipisahkan koma. Jika sebuah file adalah arsip statis (lib*.a) itu adalah
diproses untuk mengekstrak simbol. Kalau tidak, itu adalah file database yang terdiri dari:
garis bentuk simbol|library:module misalnya:

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

Ketika semua simbol dalam module.o didefinisikan dalam aplikasi, tautan statis dari
modul itu (dan arsip perpustakaan yang sesuai) diasumsikan. Menggunakan -S untuk menunjukkan
bahwa hanya uji tautan statis yang harus dilakukan.

penggunaan -S int untuk hanya melakukan pemeriksaan tautan statis dan menggunakan database internal.

penggunaan -s tak satupun or -S tak satupun untuk melewati pemeriksaan penautan statis sepenuhnya.

-j pekerjaan
Run pekerjaan secara paralel sebagai proses yang terpisah. menyiratkan -k. Terutama ditujukan untuk
beberapa mesin CPU di mana pekerjaan harus mendekati jumlah prosesor.
Output dikumpulkan dalam file tmp dan dicetak sekaligus di dekat akhir proses sebagai
setiap pekerjaan selesai.

If pekerjaan adalah "-", "deteksi", atau "n", maka pekerjaan akan diatur ke nomor tergantung pada
jumlah prosesor pada mesin saat ini (jika itu dapat ditentukan).

OPERA


Operand berikut didukung:

arsip Daftar objek biner aplikasi untuk diperiksa.

KELUARAN


Ada satu baris per masalah (mungkin ada beberapa masalah per biner yang diperiksa) yang
terlihat seperti berikut:

Jika tidak ada masalah yang ditemukan:
nama file: OKE

Jika penggunaan simbol pribadi:
nama file: PRIBADI (perpustakaan:versi_privat) simbol_pribadi

Jika penggunaan simbol berkembang:
nama file: BERKEMBANG (perpustakaan:berkembang_vers) berkembang_sym

Jika file ditautkan secara statis di perpustakaan arsip sistem:
nama file: STATIS_LINK (arsip)

Jika pemeriksaan file dilewati:
nama file: MELEWATI (alasan)

Di bawah penggunaan kelas yang dihapus di -O menimpa opsi file, masalah ini mungkin:
ditemukan:

Jika simbol telah dihapus dari perpustakaan pada beberapa rilis:
nama file: DELETED_SYM: simbol/perpustakaan

(perpustakaan akan "tidak terikat" jika simbol itu tidak terikat)

Jika seluruh perpustakaan telah dihapus pada beberapa rilis atau tidak stabil untuk
menggunakan:
nama file: UNSTABLE_LIB: perpustakaan-soname = perpustakaan-jalan

(perpustakaan-jalan mungkin "file tidak ditemukan" jika perpustakaan tidak dapat ditemukan)

Masalah berikut akan menyebabkan kesalahan fatal kecuali jika: -k opsi yang digunakan:

Jika penaut dinamis tidak dapat menyelesaikan N simbol ketika ldd -r dijalankan:
nama file: UNBOUND_SYMBOLS: N

Jika penaut dinamis tidak menemukan ikatan dinamis:
nama file: NO_BINDING

If ldd -r dengan LD_DEBUG=file,binding gagal:
nama file: LDD_ERROR

Dalam tiga kasus terakhir ini dijalankan ldd -r pada file biner untuk informasi lebih lanjut tentang apa
salah (perhatikan bahwa abicheck berjalan ldd -r dengan LD_DEBUG=file,binding mengatur). Pada beberapa
sistem penghubung dinamis tidak akan memproses program SUID dengan LD_DEBUG set (ini biasanya
hasil dalam NO_BINDING dalam abicheck keluaran).

Perhatikan bahwa jika Anda menjalankan abicheck di perpustakaan bersama (misalnya, libfoo.so) itu
memiliki tidak telah dibangun dengan -l lib flag untuk merekam dependensi perpustakaannya, lalu tanda "tidak terikat"
masalah "simbol" sangat mungkin. Tidak banyak yang bisa dilakukan selain membangun kembali
perpustakaan atau memeriksa biner aplikasi yang menggunakan perpustakaan dan menggunakan -l pilihan dari
abicheck.

EXIT STATUS


Nilai keluar berikut dikembalikan:

0 Tidak ada kesalahan dan tidak ada masalah yang ditemukan.

1 Terjadi kesalahan fatal.

2 Tidak ada kesalahan fatal yang terjadi, tetapi beberapa binari memiliki masalah yang terdeteksi.

CATATAN


Hanya objek ELF yang diperiksa.

Dalam majalah -s -S -d dan -O dbfiles karakter '#' memulai baris komentar dengan cara biasa.

Kecuali jika seseorang menggunakan kecocokan khusus "::" yang disediakan melalui -p or -e bendera, abicheck can
hanya periksa pustaka sistem yang telah menerapkan versi simbol (mis
informasi pribadi dan/atau berkembang yang direkam untuk setiap simbol di perpustakaan itu sendiri).
Untuk info lebih lanjut tentang versi simbol, lihat "Panduan Solaris Linker dan Libraries"
buku jawaban di URL http://docs.sun.com/ab2/coll.45.13 dan Skrip Perintah/Versi
bagian dari halaman info "ld" linker GNU.

Pola pencocokan nama versi simbol default adalah kecocokan yang tidak peka huruf besar-kecil dengan
string "pribadi" dan "berkembang" untuk kasus pribadi dan berkembang, masing-masing.

Nama file ganjil yang berisi karakter tanda kutip tunggal atau baris baru akan dilewati; seperti
karakter mengganggu panggilan perintah melalui shell.

Untuk direktori berulang gunakan menemukan(1) dan mengumpulkan output ke file untuk digunakan dengan
itu -f pilihan, atau dalam pipa melalui:

temukan ... | abicheck -f - ...

Gunakan abicheck online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad