EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

abidiff - Online în cloud

Rulați abidiff în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda abidiff care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


abidiff - comparați ABI-urile fișierelor ELF

abidiff compară interfețele binare de aplicație (ABI) a două biblioteci partajate în ELF
format. Emite un raport semnificativ care descrie diferențele dintre cele două ABI.

Pentru un raport cuprinzător de modificare a ABI care include modificări ale funcției și variabilei
subtipuri, cele două biblioteci partajate de intrare trebuie să fie însoțite de informațiile lor de depanare
in PITIC format. În rest, numai ELF simbolurile care au fost adăugate sau eliminate sunt raportate.

INVOCARE


abidiff [opțiuni]

OPŢIUNI


· --Ajutor | -h

Afișează un scurt ajutor despre comandă și ieșire.

· --versiune | -v

Afișați versiunea programului și ieșiți.

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

Pentru cazurile în care informațiile de depanare pentru prima bibliotecă comună este împărțit într-o
dosar separat, spune abidiff unde să găsiți acel fișier separat de informații de depanare.

Rețineți că di-path trebuie să indice directorul rădăcină în care se află informațiile de depanare
este aranjat într-o manieră asemănătoare unui copac. În sistemele bazate pe Red Hat, acel director este
obișnuit /usr/lib/debug.

Rețineți, de asemenea, că această opțiune nu este obligatorie pentru informațiile de depanare divizate instalate de
managerul de pachete al sistemului dvs. pentru că atunci abidiff știe unde să-l găsească.

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

Aprecieri --debug-info-dir1, această opțiune spune abidiff unde să găsiți depanarea divizată
informatii pentru a doua bibliotecă comună fișier.

· --stat

În loc să afișeze diferențele detaliate ABI între prima bibliotecă comună și
a doua bibliotecă comună, afișați doar câteva statistici rezumate despre aceste diferențe.

· --symtabs

Afișați numai tabelele cu simboluri ale prima bibliotecă comună și a doua bibliotecă comună.

· --deleted-fns

În raportul rezultat despre diferențele dintre prima bibliotecă comună și
a doua bibliotecă comună, afișează numai funcțiile definite global care au fost șterse
din prima bibliotecă comună.

· --schimbat-fns

În raportul rezultat despre diferențele dintre prima bibliotecă comună și
a doua bibliotecă comună, afișează doar modificările în subtipurile funcțiilor globale
definit în prima bibliotecă comună.

· --adăugat-fns

În raportul rezultat despre diferențele dintre prima bibliotecă comună și
a doua bibliotecă comună, afișează numai funcțiile definite global la care au fost adăugate
a doua bibliotecă comună.

· --deleted-vars

În raportul rezultat despre diferențele dintre prima bibliotecă comună și
a doua bibliotecă comună, afișează numai variabilele definite global care au fost șterse
din prima bibliotecă comună.

· --schimbate-vars

În raportul rezultat despre diferențele dintre prima bibliotecă comună și
a doua bibliotecă comună, afișează doar modificările în subtipurile globale
variabilele definite în prima bibliotecă comună

· --adăugat-vars

În raportul rezultat despre diferențele dintre prima bibliotecă comună și
a doua bibliotecă comună, afișează numai variabilele globale la care au fost adăugate (definite).
a doua bibliotecă comună.

· --no-link-name

În raportul rezultat, nu afișați numele legăturii adăugate, eliminate sau
funcții sau variabile modificate.

· --no-show-locs
Nu afișați informații despre locația din al doilea comun bibliotecă respectivul
tipul a fost schimbat.

· --fără-simboluri-nereferențiate

În raportul rezultat, nu afișați informații despre modificarea funcției și
simboluri variabile care nu sunt referite de nicio informație de depanare. Rețineți că pentru
aceste simboluri nu fac referire de nicio informație de depanare, informațiile de modificare
simbolurile afișate sunt fie adăugate, fie eliminate.

· --suprimări | --supr <cale spre suprimari>

Utilizați un fișier cu specificații de suprimare situat la cale spre suprimari. Rețineți că acest lucru
opțiunea poate apărea de mai multe ori pe linia de comandă; toată suprimarea
sunt apoi luate în considerare fișierele de specificații.

· --cădere brusca <regex>

Când citiți prima bibliotecă comună și a doua bibliotecă comună Fișiere de intrare ELF, aruncați
funcțiile și variabilele definite global, care denumesc se potrivesc cu expresia regulată
regex. Ca urmare, nu va fi emisă nicio modificare care implică aceste funcții sau variabile
în raportul dif.

· --drop-fn <regex>

Când citiți prima bibliotecă comună și a doua bibliotecă comună Fișiere de intrare ELF, aruncați
funcțiile definite la nivel global, a căror denumire se potrivește cu expresia regulată regex. Ca a
rezultat, nicio modificare care implică aceste funcții nu va fi emisă în raportul de dif.

· --drop-var <regex>

Când citiți prima bibliotecă comună și a doua bibliotecă comună Fișiere de intrare ELF, aruncați
variabilele definite global care se potrivesc cu expresia regulată regex.

· --a pastra <regex>

Când citiți prima bibliotecă comună și a doua bibliotecă comună Fișiere de intrare ELF, păstrați
funcțiile și variabilele definite la nivel global cărora numele se potrivesc cu expresia regulată
regex. Toate celelalte funcții și variabile sunt aruncate pe podea și, prin urmare, nu vor fi
apar în raportul de diferențe rezultat.

· --ţine-fn <regex>

Când citiți prima bibliotecă comună și a doua bibliotecă comună Fișiere de intrare ELF, păstrați
funcțiile definite la nivel global, a căror denumire se potrivește cu expresia regulată regex. Toate
alte funcții sunt aruncate pe podea și astfel nu vor apărea în rezultatul
raportul dif.

· --ţine-var <regex>

Când citiți prima bibliotecă comună și a doua bibliotecă comună Fișiere de intrare ELF, păstrați
definite global care nume se potrivesc cu expresia regulată regex. Toti ceilalti
variabilele sunt aruncate pe podea și, prin urmare, nu vor apărea în diferența rezultată
raport.

· --inofensiv

În raportul de diferențe, afișați numai modificările inofensive. În mod implicit, cei inofensivi
modificările sunt filtrate din raportul de diferențe mențin dezordinea la minimum și au un
schimbare mai mare pentru a identifica problemele reale ABI.

· --nu-dăunătoare

În raportul de diferențe, nu afișați modificările dăunătoare. În mod implicit, numai cele dăunătoare
modificările sunt afișate în raportul dif.

· --redundant

În raportul de diferențe, afișați modificări redundante. O schimbare redundantă este o schimbare
care a fost afișat în altă parte a raportului.

· --nu-redundant

În raportul de diferențe, faceți NU afișează modificări redundante. O schimbare redundantă este o schimbare
care a fost afișat în altă parte a raportului. Această opțiune este activată de
Mod implicit.

· --fără-arhitectură

Nu luați în considerare arhitectura atunci când comparați ABI-urile.

· --dump-diff-tree
După raportul de diferență, emiteți o reprezentare textuală a arborelui nodurilor de diferență utilizat de
motorul de comparație pentru a reprezenta funcțiile și variabilele modificate. Acea
reprezentarea este emisă la ieșirea erorii în scopuri de depanare. Rețineți că
acest arbore de diferențe este relevant doar pentru funcțiile și variabilele care au un subtip
schimbări. Funcțiile și variabilele adăugate sau eliminate nu au niciun arbore de noduri de diferență
asociate acestora.

· --statistici

Emite statistici despre diverse lucruri interne.

· --verbos

Emiteți jurnalele detaliate despre progresul diverselor lucruri interne.

A REVENI VALORI


Codul de ieșire al abidiff comanda este fie 0 dacă ABI-ul binarelor care sunt comparate
sunt egale sau diferite de zero dacă diferă sau dacă instrumentul a întâmpinat o eroare.

În ultimul caz, codul de ieșire este un câmp de biți lat de 8 biți în care fiecare bit are un
sens specific.

Primul bit, de valoare 1, numit ABIDIFF_ERROR înseamnă că a fost o eroare.

Al doilea bit, de valoare 2, numit ABIDIFF_USAGE_ERROR înseamnă că a existat o eroare în drum
utilizatorul a invocat instrumentul. Poate fi setat, de exemplu, dacă utilizatorul a invocat instrumentul
cu un comutator necunoscut de linie de comandă, cu un număr sau un argument greșit etc. Dacă acest bit este
set, apoi ABIDIFF_ERROR bit trebuie setat de asemenea.

Al treilea bit, de valoare 4, numit ABIDIFF_ABI_CHANGE înseamnă ABI-ul ființei binare
comparate sunt diferite.

Al patrulea bit, de valoare 8, numit ABIDIFF_ABI_INCOMPATIBLE_CHANGE înseamnă ABI al
binarele comparate sunt diferite într-un mod incompatibil. Dacă acest bit este setat, atunci
ABIDIFF_ABI_CHANGE bit trebuie setat de asemenea. Dacă ABIDIFF_ABI_CHANGE este setat și
ABIDIFF_INCOMPATIBLE_CHANGE is NU setat, atunci înseamnă că ABI-urile comparate ar putea
sau ar putea să nu fie compatibil. În acest caz, o ființă umană trebuie să revizuiască modificările ABI
pentru a decide dacă sunt compatibile sau nu.

Biții rămași nu sunt folosiți pentru moment.

UTILIZARE EXEMPLE


1. Detectarea unei modificări într-un subtip al unei funcții:

$ cat -n test-v0.cc
1 // Compilați asta cu:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struct S0
5 {
6 int m0;
7};
8
9 nul
10 foo(S0* /*nume_parametru*/)
11 {
12 // faceți ceva cu parameter_name.
13}
$
$ cat -n test-v1.cc
1 // Compilați asta cu:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struct type_base
5 {
6 int introdus;
7};
8
9 struct S0 : public type_base
10 {
11 int m0;
12};
13
14 nul
15 foo(S0* /*nume_parametru*/)
16 {
17 // faceți ceva cu 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
Rezumatul modificărilor funcțiilor: 0 Eliminat, 1 Modificat, 0 Funcție adăugată
Rezumatul modificărilor variabilelor: 0 Eliminate, 0 Modificate, 0 Variabilă adăugată

1 funcție cu o modificare indirectă de subtip:

[C]„funcția void foo(S0*)” are câteva modificări indirecte de subtip:
parametrul 0 de tip „S0*” are modificări de subtip:
în a indicat să tastați „struct S0”:
dimensiunea s-a schimbat de la 32 la 64 de biți
1 inserție de clasă de bază:
struct type_base
1 modificare membru de date:
Offset-ul „int S0::m0” s-a modificat de la 0 la 32
$

2. Detectarea unei alte modificări într-un subtip al unei funcții:

$ cat -n test-v0.cc
1 // Compilați asta cu:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struct S0
5 {
6 int m0;
7};
8
9 nul
10 foo(S0& /*nume_parametru*/)
11 {
12 // faceți ceva cu parameter_name.
13}
$
$ cat -n test-v1.cc
1 // Compilați asta cu:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struct S0
5 {
6 caracter inserted_member;
7 int m0;
8};
9
10 nul
11 foo(S0& /*nume_parametru*/)
12 {
13 // faceți ceva cu 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
Rezumatul modificărilor funcțiilor: 0 Eliminat, 1 Modificat, 0 Funcție adăugată
Rezumatul modificărilor variabilelor: 0 Eliminate, 0 Modificate, 0 Variabilă adăugată

1 funcție cu o modificare indirectă de subtip:

[C]„funcția void foo(S0&)” are câteva modificări indirecte de subtip:
parametrul 0 de tip „S0&” are modificări de subtip:
în tipul de referință „struct S0”:
dimensiunea s-a schimbat de la 32 la 64 de biți
Inserarea unui membru de date:
„char S0::inserted_member”, la offset 0 (în biți)
1 modificare membru de date:
Offset-ul „int S0::m0” s-a modificat de la 0 la 32

$

3. Detectarea faptului că funcțiile au fost eliminate sau adăugate la o bibliotecă:

$ cat -n test-v0.cc
1 // Compilați asta cu:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 struct S0
5 {
6 int m0;
7};
8
9 nul
10 foo(S0& /*nume_parametru*/)
11 {
12 // faceți ceva cu parameter_name.
13}
$
$ cat -n test-v1.cc
1 // Compilați asta cu:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struct S0
5 {
6 caracter inserted_member;
7 int m0;
8};
9
10 nul
11 bare(S0& /*nume_parametru*/)
12 {
13 // faceți ceva cu 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
Rezumatul modificărilor funcțiilor: 1 Eliminat, 0 Modificat, 1 Funcții adăugate
Rezumatul modificărilor variabilelor: 0 Eliminate, 0 Modificate, 0 Variabilă adăugată

1 Funcție eliminată:
„funcție void foo(S0&)” {_Z3fooR2S0}

1 funcție adăugată:
„bară nulă funcție (S0&)” {_Z3barR2S0}

$

Utilizați abidiff online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    facetracknoir
    facetracknoir
    Program modular de urmărire a capului care
    acceptă mai multe face-tracker, filtre
    și protocoale de joc. Printre urmăritori
    sunt SM FaceAPI, AIC Inertial Head
    Urmăritor ...
    Descărcați facetracknoir
  • 2
    Cod QR PHP
    Cod QR PHP
    Codul QR PHP este open source (LGPL)
    bibliotecă pentru generarea codului QR,
    Cod de bare bidimensional. Bazat pe
    libqrencode C biblioteca, oferă API pentru
    se creează codul QR barc...
    Descărcați codul QR PHP
  • 3
    freeciv
    freeciv
    Freeciv este un program gratuit pe rând
    joc de strategie multiplayer, în care fiecare
    jucătorul devine liderul unui
    civilizație, luptă pentru a obține
    Scopul final: a fi...
    Descărcați Freeciv
  • 4
    Cucul Sandbox
    Cucul Sandbox
    Cuckoo Sandbox folosește componente pentru
    monitorizați comportamentul programelor malware într-un
    Mediul Sandbox; izolat de
    restul sistemului. Oferă automată
    analiza de...
    Descărcați Cuckoo Sandbox
  • 5
    LMS-YouTube
    LMS-YouTube
    Redați videoclipul YouTube pe LMS (portare a
    Triode la YouTbe API v3) Aceasta este
    o aplicație care poate fi, de asemenea, preluată
    din
    https://sourceforge.net/projects/lms-y...
    Descărcați LMS-YouTube
  • 6
    Windows Presentation Foundation
    Windows Presentation Foundation
    Windows Presentation Foundation (WPF)
    este un cadru UI pentru construirea Windows
    aplicații desktop. WPF acceptă a
    un set larg de dezvoltare a aplicațiilor
    Caracteristici...
    Descărcați Windows Presentation Foundation
  • Mai mult »

Comenzi Linux

Ad