EngelsFransSpaans

Ad


OnWorks-favicon

abidiff - Online in de cloud

Voer abidiff uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht abidiff die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


abidiff - vergelijk ABI's van ELF-bestanden

abidiff vergelijkt de Application Binary Interfaces (ABI) van twee gedeelde bibliotheken in ELF
formaat. Het geeft een betekenisvol rapport uit waarin de verschillen tussen de twee ABI's worden beschreven.

Voor een uitgebreid ABI-wijzigingsrapport met wijzigingen over functie en variabele
subtypen, moeten de twee gedeelde invoerbibliotheken vergezeld gaan van hun foutopsporingsinformatie
in DWARF formaat. Anders alleen ELF symbolen die zijn toegevoegd of verwijderd, worden gerapporteerd.

AANROEPING


abidiff [opties]

OPTIES


· --help | -h

Geef een korte hulp weer over de opdracht en sluit af.

· --versie | -v

Geef de versie van het programma weer en sluit af.

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

Voor gevallen waarin de foutopsporingsinformatie voor eerste gedeelde bibliotheek is opgesplitst in een
apart bestand, vertelt abidiff waar u dat afzonderlijke foutopsporingsinformatiebestand kunt vinden.

Merk op dat di-pad moet verwijzen naar de hoofdmap waaronder de foutopsporingsinformatie staat
is boomvormig gerangschikt. Onder op Red Hat gebaseerde systemen is die map dat wel
doorgaans /usr/lib/debug.

Houd er ook rekening mee dat deze optie niet verplicht is voor gesplitste foutopsporingsinformatie die is geïnstalleerd door
de pakketbeheerder van uw systeem, want dan abidiff weet waar het te vinden is.

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

Like --debug-info-dir1, vertelt deze optie abidiff waar u de gesplitste foutopsporing kunt vinden
informatie voor de tweede gedeelde bibliotheek bestand.

· --staat

In plaats van de gedetailleerde ABI-verschillen tussen eerste gedeelde bibliotheek en
tweede gedeelde bibliotheek, geef gewoon enkele samenvattende statistieken weer over deze verschillen.

· --symtabs

Geef alleen de symbooltabellen van de eerste gedeelde bibliotheek en tweede gedeelde bibliotheek.

· --verwijderde-fns

In het resulterende rapport over de verschillen tussen eerste gedeelde bibliotheek en
tweede gedeelde bibliotheek, geef alleen de globaal gedefinieerde functies weer die zijn verwijderd
oppompen van eerste gedeelde bibliotheek.

· --gewijzigd-fns

In het resulterende rapport over de verschillen tussen eerste gedeelde bibliotheek en
tweede gedeelde bibliotheek, geven alleen de wijzigingen in subtypen van de globale functies weer
gedefinieerd in eerste gedeelde bibliotheek.

· --toegevoegd-fns

In het resulterende rapport over de verschillen tussen eerste gedeelde bibliotheek en
tweede gedeelde bibliotheek, geven alleen de globaal gedefinieerde functies weer waaraan zijn toegevoegd
tweede gedeelde bibliotheek.

· --verwijderde-vars

In het resulterende rapport over de verschillen tussen eerste gedeelde bibliotheek en
tweede gedeelde bibliotheek, geef alleen de globaal gedefinieerde variabelen weer die zijn verwijderd
oppompen van eerste gedeelde bibliotheek.

· --gewijzigde-vars

In het resulterende rapport over de verschillen tussen eerste gedeelde bibliotheek en
tweede gedeelde bibliotheek, geven alleen de wijzigingen weer in de subtypen van de global
variabelen gedefinieerd in eerste gedeelde bibliotheek

· --toegevoegde-vars

In het resulterende rapport over de verschillen tussen eerste gedeelde bibliotheek en
tweede gedeelde bibliotheek, geef alleen de globale variabelen weer die zijn toegevoegd (gedefinieerd).
tweede gedeelde bibliotheek.

· --geen-koppelingsnaam

Geef in het resulterende rapport niet de koppelingsnamen weer van de toegevoegde, verwijderde of
gewijzigde functies of variabelen.

· --no-show-locs
Toon geen informatie over waar in de tweede gedeeld bibliotheek de respectieve
soort is gewijzigd.

· --geen-niet-gerefereerde-symbolen

Geef in het resulterende rapport geen wijzigingsinformatie over functie en weer
variabele symbolen waarnaar niet wordt verwezen door foutopsporingsinformatie. Merk op dat voor
deze symbolen waarnaar niet wordt verwezen door enige foutopsporingsinformatie, de wijzigingsinformatie
weergegeven worden toegevoegde of verwijderde symbolen.

· --onderdrukkingen | --suppr <pad naar onderdrukking>

Gebruik een onderdrukkingsspecificatiebestand op pad naar onderdrukking. Merk op dat dit
optie kan meerdere keren op de opdrachtregel verschijnen; al die onderdrukking
Er wordt dan rekening gehouden met specificatiebestanden.

· --laten vallen <regex>

Bij het lezen van de eerste gedeelde bibliotheek en tweede gedeelde bibliotheek ELF-invoerbestanden, neerzetten
de globaal gedefinieerde functies en variabelen waarvan de naam overeenkomt met de reguliere expressie
regex. Als gevolg hiervan wordt er geen wijziging met betrekking tot deze functies of variabelen uitgezonden
in het diff-rapport.

· --drop-fn <regex>

Bij het lezen van de eerste gedeelde bibliotheek en tweede gedeelde bibliotheek ELF-invoerbestanden, neerzetten
de globaal gedefinieerde functies waarvan de naam overeenkomt met de reguliere expressie regex. Als een
Als gevolg hiervan zal er geen wijziging met betrekking tot deze functies in het diff-rapport worden weergegeven.

· --drop-var <regex>

Bij het lezen van de eerste gedeelde bibliotheek en tweede gedeelde bibliotheek ELF-invoerbestanden, neerzetten
de globaal gedefinieerde variabelen die overeenkomen met de reguliere expressie regex.

· --houden <regex>

Bij het lezen van de eerste gedeelde bibliotheek en tweede gedeelde bibliotheek ELF-invoerbestanden, behouden
de globaal gedefinieerde functies en variabelen waarvan de namen overeenkomen met de reguliere expressie
regex. Alle andere functies en variabelen vallen op de grond en zullen dus niet vallen
verschijnen in het resulterende diff-rapport.

· --houd-fn <regex>

Bij het lezen van de eerste gedeelde bibliotheek en tweede gedeelde bibliotheek ELF-invoerbestanden, behouden
de globaal gedefinieerde functies waarvan de naam overeenkomt met de reguliere expressie regex. Alle
andere functies vallen op de grond en verschijnen dus niet in het resultaat
diff rapport.

· --houd-var <regex>

Bij het lezen van de eerste gedeelde bibliotheek en tweede gedeelde bibliotheek ELF-invoerbestanden, behouden
de globaal gedefinieerde namen die overeenkomen met de reguliere expressie regex. Alle andere
variabelen worden op de grond neergezet en verschijnen dus niet in de resulterende diff
melden.

· --onschadelijk

Geef in het diff-rapport alleen de onschadelijke wijzigingen weer. Standaard is het onschadelijk
wijzigingen worden uit het diff-rapport gefilterd, houden de rommel tot een minimum en hebben een
grotere verandering om echte ABI-problemen op te sporen.

· --niet-schadelijk

Geef in het diff-rapport de schadelijke wijzigingen niet weer. Standaard alleen het schadelijke
wijzigingen worden weergegeven in het diff-rapport.

· --overbodig

Geef in het diff-rapport wel redundante wijzigingen weer. Een overbodige verandering is een verandering
die elders in het rapport is weergegeven.

· --niet-redundant

Doe dat in het diff-rapport NIET overbodige wijzigingen weergeven. Een overbodige verandering is een verandering
die elders in het rapport is weergegeven. Deze optie is ingeschakeld door
standaard.

· --geen-architectuur

Houd bij het vergelijken van ABI's geen rekening met architectuur.

· --dump-diff-boom
Na het diff-rapport verzendt u een tekstuele weergave van de diff-knooppuntenboom die wordt gebruikt
de vergelijkingsengine om de gewijzigde functies en variabelen weer te geven. Dat
representatie wordt verzonden naar de foutuitvoer voor foutopsporingsdoeleinden. Let daar op
deze diff-boom is alleen relevant voor functies en variabelen die een bepaald subtype hebben
veranderingen. Toegevoegde of verwijderde functies en variabelen hebben geen diff-knooppuntenboom
aan hen verbonden.

· --statistieken

Verzend statistieken over verschillende interne zaken.

· --uitgebreid

Zend uitgebreide logboeken uit over de voortgang van diverse interne zaken.

RETURN WAARDEN


De exitcode van de abidiff commando is ofwel 0 als de ABI van de binaire bestanden die worden vergeleken
zijn gelijk, of niet nul als ze verschillen of als er een fout in het gereedschap is opgetreden.

In het laatste geval is de exitcode een bitveld van 8 bits breed waarin elke bit een
specifieke betekenis.

Het eerste bit, met waarde 1, genaamd ABIDIFF_ERROR betekent dat er een fout is opgetreden.

Het tweede bit, met waarde 2, genaamd ABIDIFF_USAGE_ERROR betekent dat er een fout in de weg zat
de gebruiker heeft het hulpprogramma aangeroepen. Het kan bijvoorbeeld worden ingesteld als de gebruiker de tool heeft aangeroepen
met een onbekende opdrachtregelschakelaar, met een verkeerd nummer of argument, enz. Als dit bit is
instellen, dan de ABIDIFF_ERROR bit moet ook worden ingesteld.

Het derde bit, met waarde 4, genaamd ABIDIFF_ABI_CHANGE betekent de ABI van het binaire bestand
vergeleken zijn verschillend.

Het vierde bit, met waarde 8, genoemd ABIDIFF_ABI_INCOMPATIBLE_CHANGE betekent de ABI van de
vergeleken binaire bestanden zijn op een incompatibele manier verschillend. Als dit bit is ingesteld, wordt de
ABIDIFF_ABI_CHANGE bit moet ook worden ingesteld. Als de ABIDIFF_ABI_CHANGE is ingesteld en de
ABIDIFF_INCOMPATIBLE_CHANGE is NIET is ingesteld, dan betekent dit dat de ABI's die worden vergeleken mogelijk zijn
of zijn mogelijk niet compatibel. In dat geval moet een mens de ABI-wijzigingen beoordelen
om te beslissen of ze compatibel zijn of niet.

De resterende bits worden momenteel niet gebruikt.

GEBRUIK Voorbeelden


1. Een verandering in een subtype van een functie detecteren:

$ cat -n test-v0.cc
1 // Compileer dit met:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 structuur S0
5 {
6 int m0;
7};
8
9 leegte
10 foo(S0* /*parameternaam*/)
11 {
12 // doe iets met parameternaam.
13}
$
$ cat -n test-v1.cc
1 // Compileer dit met:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 struct type_base
5 {
6 int ingevoegd;
7};
8
9 struct S0: openbare type_base
10 {
11 int m0;
12};
13
14 leegte
15 foo(S0* /*parameternaam*/)
16 {
17 // doe iets met parameternaam.
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
Overzicht van functiewijzigingen: 0 Verwijderd, 1 Gewijzigd, 0 Functie toegevoegd
Samenvatting van wijzigingen in variabelen: 0 Verwijderd, 0 Gewijzigd, 0 Variabele toegevoegd

1 functie met enige indirecte subtypeverandering:

[C]'function void foo(S0*)' heeft enkele indirecte subtypewijzigingen:
parameter 0 van type 'S0*' heeft subtypewijzigingen:
in wees naar type 'struct S0':
grootte gewijzigd van 32 naar 64 bits
1 basisklasse-invoeging:
struct type_base
1 gegevenslidwijziging:
'int S0::m0'-offset gewijzigd van 0 naar 32
$

2. Een andere wijziging in een subtype van een functie detecteren:

$ cat -n test-v0.cc
1 // Compileer dit met:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 structuur S0
5 {
6 int m0;
7};
8
9 leegte
10 foo(S0& /*parameternaam*/)
11 {
12 // doe iets met parameternaam.
13}
$
$ cat -n test-v1.cc
1 // Compileer dit met:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 structuur S0
5 {
6 tekens ingevoegd_lid;
7 int m0;
8};
9
10 leegte
11 foo(S0& /*parameternaam*/)
12 {
13 // doe iets met parameternaam.
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
Overzicht van functiewijzigingen: 0 Verwijderd, 1 Gewijzigd, 0 Functie toegevoegd
Samenvatting van wijzigingen in variabelen: 0 Verwijderd, 0 Gewijzigd, 0 Variabele toegevoegd

1 functie met enige indirecte subtypeverandering:

[C]'function void foo(S0&)' heeft enkele indirecte subtypewijzigingen:
parameter 0 van type 'S0&' heeft subtypewijzigingen:
in het type waarnaar wordt verwezen 'struct S0':
grootte gewijzigd van 32 naar 64 bits
1 gegevenslidinvoeging:
'char S0::inserted_member', bij offset 0 (in bits)
1 gegevenslidwijziging:
'int S0::m0'-offset gewijzigd van 0 naar 32

$

3. Detecteren dat functies zijn verwijderd of toegevoegd aan een bibliotheek:

$ cat -n test-v0.cc
1 // Compileer dit met:
2 // g++ -g -Wall -shared -o libtest-v0.so test-v0.cc
3
4 structuur S0
5 {
6 int m0;
7};
8
9 leegte
10 foo(S0& /*parameternaam*/)
11 {
12 // doe iets met parameternaam.
13}
$
$ cat -n test-v1.cc
1 // Compileer dit met:
2 // g++ -g -Wall -shared -o libtest-v1.so test-v1.cc
3
4 structuur S0
5 {
6 tekens ingevoegd_lid;
7 int m0;
8};
9
10 leegte
11 bar(S0& /*parameternaam*/)
12 {
13 // doe iets met parameternaam.
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
Samenvatting van functiewijzigingen: 1 Verwijderd, 0 Gewijzigd, 1 Toegevoegde functies
Samenvatting van wijzigingen in variabelen: 0 Verwijderd, 0 Gewijzigd, 0 Variabele toegevoegd

1 Verwijderde functie:
'functie ongeldig foo(S0&)' {_Z3fooR2S0}

1 Toegevoegde functie:
'functie ongeldige balk(S0&)' {_Z3barR2S0}

$

Gebruik abidiff online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    facetracknoir
    facetracknoir
    Modulair headtracking-programma dat
    ondersteunt meerdere face-trackers, filters
    en spelprotocollen. Tussen de trackers
    zijn de SM FaceAPI, AIC Inertial Head
    Volger...
    Facetracknoir downloaden
  • 2
    PHP QR-code
    PHP QR-code
    PHP QR-code is open source (LGPL)
    bibliotheek voor het genereren van QR-code,
    2-dimensionale streepjescode. Gebaseerd op
    libqrencode C bibliotheek, biedt API voor
    QR-codebalk maken...
    PHP QR-code downloaden
  • 3
    freeciv
    freeciv
    Freeciv is een gratis turn-based spel
    strategiespel voor meerdere spelers, waarin elk
    speler wordt de leider van een
    beschaving, vechtend om de
    uiteindelijke doel: worden...
    Gratis civ downloaden
  • 4
    Koekoek Zandbak
    Koekoek Zandbak
    Cuckoo Sandbox gebruikt componenten om
    monitor het gedrag van malware in een
    Sandbox-omgeving; geïsoleerd van de
    rest van het systeem. Het biedt geautomatiseerd
    analyse van...
    Koekoek sandbox downloaden
  • 5
    LMS-YouTube
    LMS-YouTube
    YouTube-video afspelen op LMS (porteren van
    Triode's naar YouTbe API v3) Dit is
    een toepassing die ook kan worden opgehaald
    oppompen van
    https://sourceforge.net/projects/lms-y...
    LMS-YouTube downloaden
  • 6
    Windows Presentation Foundation
    Windows Presentation Foundation
    Windows Presentatie Foundation (WPF)
    is een UI-framework voor het bouwen van Windows
    desktop-applicaties. WPF ondersteunt een
    brede set van applicatie-ontwikkeling
    Kenmerken...
    Windows presentatie foundation downloaden
  • Meer "

Linux-commando's

Ad