EnglishFrenchSpanyol

Ad


Favicon OnWorks

abidiff - Dalam talian di Awan

Jalankan abidiff dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan abidiff yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


abidiff - bandingkan ABI fail ELF

abidiff membandingkan Antara Muka Binari Aplikasi (ABI) dua perpustakaan kongsi dalam ELF
format. Ia mengeluarkan laporan bermakna yang menerangkan perbezaan antara kedua-dua ABI.

Untuk laporan perubahan ABI komprehensif yang merangkumi perubahan tentang fungsi dan pembolehubah
subjenis, kedua-dua perpustakaan kongsi input mesti disertakan dengan maklumat nyahpepijat mereka
in KERDIL format. Jika tidak, hanya ELF simbol yang ditambah atau dialih keluar dilaporkan.

INVOKASI


abidiff [pilihan]

PILIHAN


· - membantu | -h

Paparkan bantuan ringkas tentang arahan dan keluar.

· --versi | -v

Paparkan versi program dan keluar.

· --debug-info-dir1 | --d1 <di-path1>

Untuk kes di mana maklumat nyahpepijat untuk perpustakaan kongsi pertama terbahagi kepada a
fail berasingan, memberitahu abidiff di mana untuk mencari fail maklumat nyahpepijat yang berasingan itu.

Perhatikan bahawa di-path mesti menunjuk ke direktori akar di mana maklumat nyahpepijat
disusun dalam bentuk seperti pokok. Di bawah sistem berasaskan Red Hat, direktori itu ialah
biasanya /usr/lib/debug.

Ambil perhatian juga bahawa pilihan ini tidak wajib untuk maklumat nyahpepijat pisah yang dipasang oleh
pengurus pakej sistem anda kerana kemudian abidiff tahu di mana untuk mencarinya.

· --debug-info-dir2 | --d2 <di-path2>

suka --debug-info-dir1, pilihan ini memberitahu abidiff di mana untuk mencari nyahpepijat split
maklumat untuk perpustakaan kongsi kedua fail.

· --stat

Daripada memaparkan perbezaan ABI terperinci antara perpustakaan kongsi pertama and
perpustakaan kongsi kedua, cuma paparkan beberapa statistik ringkasan tentang perbezaan ini.

· --symtabs

Hanya paparkan jadual simbol bagi perpustakaan kongsi pertama and perpustakaan kongsi kedua.

· --dipadam-fns

Dalam laporan yang dihasilkan tentang perbezaan antara perpustakaan kongsi pertama and
perpustakaan kongsi kedua, hanya paparkan fungsi yang ditakrifkan secara global yang telah dipadamkan
dari perpustakaan kongsi pertama.

· --berubah-fns

Dalam laporan yang dihasilkan tentang perbezaan antara perpustakaan kongsi pertama and
perpustakaan kongsi kedua, hanya memaparkan perubahan dalam subjenis fungsi global
ditakrifkan dalam perpustakaan kongsi pertama.

· --tambah-fns

Dalam laporan yang dihasilkan tentang perbezaan antara perpustakaan kongsi pertama and
perpustakaan kongsi kedua, hanya memaparkan fungsi yang ditakrifkan secara global yang telah ditambahkan pada
perpustakaan kongsi kedua.

· --deleted-vars

Dalam laporan yang dihasilkan tentang perbezaan antara perpustakaan kongsi pertama and
perpustakaan kongsi kedua, hanya paparkan pembolehubah yang ditakrifkan secara global yang telah dipadamkan
dari perpustakaan kongsi pertama.

· --berubah-var

Dalam laporan yang dihasilkan tentang perbezaan antara perpustakaan kongsi pertama and
perpustakaan kongsi kedua, hanya memaparkan perubahan dalam subjenis global
pembolehubah yang ditakrifkan dalam perpustakaan kongsi pertama

· --tambah-var

Dalam laporan yang dihasilkan tentang perbezaan antara perpustakaan kongsi pertama and
perpustakaan kongsi kedua, hanya paparkan pembolehubah global yang telah ditambahkan (ditakrifkan) kepada
perpustakaan kongsi kedua.

· --no-linkage-nama

Dalam laporan yang terhasil, jangan paparkan nama pautan yang ditambahkan, dialih keluar atau
mengubah fungsi atau pembolehubah.

· --tempat-tidak hadir
Jangan tunjukkan maklumat tentang tempat di dalam kedua dikongsi perpustakaan masing-masing
jenis telah ditukar.

· --no-unreferenced-simbol

Dalam laporan yang terhasil, jangan paparkan maklumat perubahan tentang fungsi dan
simbol pembolehubah yang tidak dirujuk oleh sebarang maklumat nyahpepijat. Perhatikan bahawa untuk
simbol ini tidak dirujuk oleh sebarang maklumat nyahpepijat, maklumat perubahan
yang dipaparkan adalah sama ada ditambah atau dikeluarkan simbol.

· --penindasan | --suppr <laluan ke-penindasan>

Gunakan fail spesifikasi penindasan yang terletak di laluan ke-penindasan. Perhatikan bahawa ini
pilihan boleh muncul beberapa kali pada baris arahan; semua penindasan
fail spesifikasi kemudiannya diambil kira.

· --jatuhkan <regex>

Apabila membaca perpustakaan kongsi pertama and perpustakaan kongsi kedua Fail input ELF, lepaskan
fungsi dan pembolehubah yang ditakrifkan secara global yang namanya sepadan dengan ungkapan biasa
regex. Akibatnya, tiada perubahan yang melibatkan fungsi atau pembolehubah ini akan dipancarkan
dalam laporan perbezaan.

· --drop-fn <regex>

Apabila membaca perpustakaan kongsi pertama and perpustakaan kongsi kedua Fail input ELF, lepaskan
fungsi yang ditakrifkan secara global yang namanya sepadan dengan ungkapan biasa regex. Sebagai
Hasilnya, tiada perubahan yang melibatkan fungsi ini akan dipancarkan dalam laporan perbezaan.

· --drop-var <regex>

Apabila membaca perpustakaan kongsi pertama and perpustakaan kongsi kedua Fail input ELF, lepaskan
pembolehubah yang ditakrifkan secara global sepadan dengan ungkapan biasa regex.

· --simpan <regex>

Apabila membaca perpustakaan kongsi pertama and perpustakaan kongsi kedua Fail input ELF, simpan
fungsi dan pembolehubah yang ditakrifkan secara global yang mana nama sepadan dengan ungkapan biasa
regex. Semua fungsi dan pembolehubah lain dijatuhkan di atas lantai dan oleh itu tidak akan
muncul dalam laporan perbezaan yang terhasil.

· --simpan-fn <regex>

Apabila membaca perpustakaan kongsi pertama and perpustakaan kongsi kedua Fail input ELF, simpan
fungsi yang ditakrifkan secara global yang namanya sepadan dengan ungkapan biasa regex. Semua
fungsi lain dijatuhkan di atas lantai dan oleh itu tidak akan muncul dalam yang terhasil
laporan berbeza.

· --keep-var <regex>

Apabila membaca perpustakaan kongsi pertama and perpustakaan kongsi kedua Fail input ELF, simpan
nama yang ditakrifkan secara global sepadan dengan ungkapan biasa regex. Semua yang lain
pembolehubah dijatuhkan di atas lantai dan oleh itu tidak akan muncul dalam perbezaan yang terhasil
melaporkan.

· --tidak berbahaya

Dalam laporan perbezaan, paparkan hanya perubahan yang tidak berbahaya. Secara lalai, tidak berbahaya
perubahan ditapis daripada laporan perbezaan memastikan kekacauan pada tahap minimum dan mempunyai a
perubahan yang lebih besar untuk mengesan isu ABI sebenar.

· --tidak-memudaratkan

Dalam laporan perbezaan, jangan paparkan perubahan yang berbahaya. Secara lalai, hanya yang berbahaya
perubahan dipaparkan dalam laporan perbezaan.

· --berlebihan

Dalam laporan perbezaan, lakukan paparan perubahan berlebihan. Perubahan yang berlebihan adalah perubahan
yang telah dipaparkan di tempat lain dalam laporan.

· --tidak-berlebihan

Dalam laporan perbezaan, lakukan TIDAK memaparkan perubahan berlebihan. Perubahan yang berlebihan adalah perubahan
yang telah dipaparkan di tempat lain dalam laporan. Pilihan ini dihidupkan oleh
lalai.

· --tiada-seni bina

Jangan ambil kira seni bina apabila membandingkan ABI.

· --dump-diff-tree
Selepas laporan perbezaan, keluarkan perwakilan teks bagi pokok nod perbezaan yang digunakan oleh
enjin perbandingan untuk mewakili fungsi dan pembolehubah yang diubah. Itu
perwakilan dipancarkan kepada output ralat untuk tujuan nyahpepijat. Perhatikan bahawa
pokok perbezaan ini hanya berkaitan dengan fungsi dan pembolehubah yang mempunyai beberapa subjenis
perubahan. Fungsi dan pembolehubah yang ditambah atau dialih keluar tidak mempunyai sebarang pokok nod berbeza
dikaitkan dengan mereka.

· --statistik

Mengeluarkan statistik tentang pelbagai perkara dalaman.

· --verbose

Pancarkan log bertele-tele tentang kemajuan pelbagai perkara dalaman.

PULANG BALIK NILAI-NILAI


Kod keluar dari abidiff arahan adalah sama ada 0 jika ABI binari dibandingkan
adalah sama, atau bukan sifar jika ia berbeza atau jika alat mengalami ralat.

Dalam kes kemudian, kod keluar ialah medan bit 8-bit lebar di mana setiap bit mempunyai a
makna khusus.

Bit pertama, nilai 1, dinamakan ABIDIFF_ERROR bermakna terdapat ralat.

Bit kedua, nilai 2, dinamakan ABIDIFF_USAGE_ERROR bermakna terdapat ralat dalam perjalanan
pengguna menggunakan alat tersebut. Ia mungkin ditetapkan, sebagai contoh, jika pengguna menggunakan alat tersebut
dengan suis baris arahan yang tidak diketahui, dengan nombor atau hujah yang salah, dsb. Jika bit ini
ditetapkan, kemudian ABIDIFF_ERROR bit mesti ditetapkan juga.

Bit ketiga, nilai 4, dinamakan ABIDIFF_ABI_CHANGE bermaksud ABI makhluk binari
dibandingkan adalah berbeza.

Bit keempat, nilai 8, dinamakan ABIDIFF_ABI_INCOMPATIBLE_CHANGE bermaksud ABI bagi
binari yang dibandingkan adalah berbeza dengan cara yang tidak serasi. Jika bit ini ditetapkan, maka
ABIDIFF_ABI_CHANGE bit mesti ditetapkan juga. Sekiranya ABIDIFF_ABI_CHANGE ditetapkan dan
ABIDIFF_INCOMPATIBLE_CHANGE is TIDAK ditetapkan, maka ini bermakna ABI yang dibandingkan mungkin
atau mungkin tidak serasi. Dalam kes itu, seseorang manusia perlu menyemak perubahan ABI
untuk memutuskan sama ada mereka serasi atau tidak.

Bit yang tinggal tidak digunakan buat masa ini.

PENGGUNAAN CONTOH


1. Mengesan perubahan dalam subjenis fungsi:

$ cat -n test-v0.cc
1 // Susun ini dengan:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struktur S0
5 {
6 int m0;
7};
8
9 batal
10 foo(S0* /*nama_parameter*/)
11 {
12 // lakukan sesuatu dengan parameter_name.
13}
$
$ cat -n test-v1.cc
1 // Susun ini dengan:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struct type_base
5 {
6 int dimasukkan;
7};
8
9 struct S0 : asas_jenis awam
10 {
11 int m0;
12};
13
14 batal
15 foo(S0* /*nama_parameter*/)
16 {
17 // lakukan sesuatu dengan parameter_name.
18}
$
$ g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
Ringkasan perubahan fungsi: 0 Dibuang, 1 Diubah, 0 Ditambah fungsi
Ringkasan perubahan pembolehubah: 0 Dibuang, 0 Diubah, 0 Pembolehubah ditambah

1 fungsi dengan beberapa perubahan subjenis tidak langsung:

[C]'function void foo(S0*)' mempunyai beberapa perubahan subjenis tidak langsung:
parameter 0 jenis 'S0*' mempunyai perubahan subjenis:
dalam menunjuk ke taip 'struct S0':
saiz berubah daripada 32 kepada 64 bit
1 sisipan kelas asas:
struct type_base
1 perubahan ahli data:
'int S0::m0' offset ditukar daripada 0 kepada 32
$

2. Mengesan perubahan lain dalam subjenis fungsi:

$ cat -n test-v0.cc
1 // Susun ini dengan:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struktur S0
5 {
6 int m0;
7};
8
9 batal
10 foo(S0& /*nama_parameter*/)
11 {
12 // lakukan sesuatu dengan parameter_name.
13}
$
$ cat -n test-v1.cc
1 // Susun ini dengan:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struktur S0
5 {
6 char inserted_member;
7 int m0;
8};
9
10 batal
11 foo(S0& /*nama_parameter*/)
12 {
13 // lakukan sesuatu dengan parameter_name.
14}
$
$ g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
Ringkasan perubahan fungsi: 0 Dibuang, 1 Diubah, 0 Ditambah fungsi
Ringkasan perubahan pembolehubah: 0 Dibuang, 0 Diubah, 0 Pembolehubah ditambah

1 fungsi dengan beberapa perubahan subjenis tidak langsung:

[C]'function void foo(S0&)' mempunyai beberapa perubahan subjenis tidak langsung:
parameter 0 jenis 'S0&' mempunyai perubahan subjenis:
dalam jenis yang dirujuk 'struct S0':
saiz berubah daripada 32 kepada 64 bit
1 sisipan ahli data:
'char S0::inserted_member', pada offset 0 (dalam bit)
1 perubahan ahli data:
'int S0::m0' offset ditukar daripada 0 kepada 32

$

3. Mengesan bahawa fungsi telah dialih keluar atau ditambahkan pada perpustakaan:

$ cat -n test-v0.cc
1 // Susun ini dengan:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struktur S0
5 {
6 int m0;
7};
8
9 batal
10 foo(S0& /*nama_parameter*/)
11 {
12 // lakukan sesuatu dengan parameter_name.
13}
$
$ cat -n test-v1.cc
1 // Susun ini dengan:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struktur S0
5 {
6 char inserted_member;
7 int m0;
8};
9
10 batal
11 bar(S0& /*nama_parameter*/)
12 {
13 // lakukan sesuatu dengan parameter_name.
14}
$
$ g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
$ g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
$
$ ../build/tools/abidiff libtest-v0.so libtest-v1.so
Ringkasan perubahan fungsi: 1 Dialih keluar, 0 Diubah, 1 Ditambah fungsi
Ringkasan perubahan pembolehubah: 0 Dibuang, 0 Diubah, 0 Pembolehubah ditambah

1 Fungsi dialih keluar:
'fungsi void foo(S0&)' {_Z3fooR2S0}

1 Fungsi tambahan:
'function void bar(S0&)' {_Z3barR2S0}

$

Gunakan abidiff dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    facetracknoir
    facetracknoir
    Program pengesanan kepala modular yang
    menyokong berbilang penjejak muka, penapis
    dan protokol permainan. Antara penjejak
    ialah SM FaceAPI, Ketua Inersia AIC
    Penjejak ...
    Muat turun facetracknoir
  • 2
    Kod QR PHP
    Kod QR PHP
    Kod QR PHP ialah sumber terbuka (LGPL)
    perpustakaan untuk menjana Kod QR,
    Kod bar 2 dimensi. Berdasarkan
    perpustakaan libqrencode C, menyediakan API untuk
    mencipta bar Kod QR...
    Muat turun Kod QR PHP
  • 3
    freeciv
    freeciv
    Freeciv ialah berasaskan giliran percuma
    permainan strategi berbilang pemain, di mana setiap
    pemain menjadi ketua a
    tamadun, berjuang untuk mendapatkan
    matlamat akhir: menjadi...
    Muat turun Freeciv
  • 4
    Kotak Pasir Cuckoo
    Kotak Pasir Cuckoo
    Kotak Pasir Cuckoo menggunakan komponen untuk
    memantau tingkah laku perisian hasad dalam a
    Persekitaran kotak pasir; terpencil daripada
    selebihnya sistem. Ia menawarkan automatik
    analisis o...
    Muat turun Kotak Pasir Cuckoo
  • 5
    LMS-YouTube
    LMS-YouTube
    Mainkan video YouTube pada LMS (pengalihan daripada
    Triode's to YouTbe API v3) Ini adalah
    aplikasi yang juga boleh diambil
    dari
    https://sourceforge.net/projects/lms-y...
    Muat turun LMS-YouTube
  • 6
    Yayasan Persembahan Windows
    Yayasan Persembahan Windows
    Yayasan Persembahan Windows (WPF)
    ialah rangka kerja UI untuk membina Windows
    aplikasi desktop. WPF menyokong a
    set luas pembangunan aplikasi
    ciri-ciri...
    Muat turun Windows Presentation Foundation
  • Lebih »

Arahan Linux

Ad