EngelsFransSpaans

Ad


OnWorks-favicon

aarch64-linux-gnu-gcov-4.8 - Online in de cloud

Voer aarch64-linux-gnu-gcov-4.8 uit in OnWorks gratis hostingprovider via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht aarch64-linux-gnu-gcov-4.8 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


gcov - tool voor het testen van dekking

KORTE INHOUD


gkov [-v|--versie] [-h|--help]
[-a|--alle-blokken]
[-b|--branch-waarschijnlijkheden]
[-c|--tak-tellingen]
[-u|--onvoorwaardelijke-takken]
[-n|--geen output]
[-l|--lange-bestandsnamen]
[-p|--behoud-paden]
[-r|--alleen-relatief]
[-f|--functie-samenvattingen]
[-o|--object-map map|bestand]
[-s|--bron-voorvoegsel directory]
[-d|--weergave-voortgang]
bestanden

PRODUCTBESCHRIJVING


gcov is een testdekkingsprogramma. Gebruik het samen met GCC om uw programma's te analyseren om
helpen bij het maken van efficiëntere, sneller werkende code en het ontdekken van niet-geteste delen van uw
programma. Je kunt gebruiken gcov als profileringstool om te ontdekken waar uw optimalisatie
inspanningen zullen uw code het beste beïnvloeden. Je kan ook gebruiken gcov samen met de andere profilering
gereedschap, gprof, om te beoordelen welke delen van uw code de meeste rekentijd gebruiken.

Profileringstools helpen u de prestaties van uw code te analyseren. Een profiler gebruiken zoals gcov
or gprof, kunt u enkele elementaire prestatiestatistieken vinden, zoals:

· hoe vaak elke regel code wordt uitgevoerd

· welke regels code daadwerkelijk worden uitgevoerd

· hoeveel rekentijd elke sectie van de code gebruikt

Zodra u deze dingen weet over hoe uw code werkt wanneer deze is gecompileerd, kunt u ze allemaal bekijken
module om te zien welke modules moeten worden geoptimaliseerd. gcov helpt u te bepalen waar te werken
op optimalisatie.

Softwareontwikkelaars gebruiken ook dekkingstesten samen met testsuites, om er zeker van te zijn
software is eigenlijk goed genoeg voor een release. Testsuites kan verifiëren dat een programma
werkt zoals verwacht; een dekkingsprogramma test om te zien hoeveel van het programma wordt uitgeoefend door
de testsuite. Ontwikkelaars kunnen dan bepalen aan welke soorten testcases moet worden toegevoegd
de testsuites om zowel betere testen als een beter eindproduct te creëren.

U moet uw code compileren zonder optimalisatie als u van plan bent om te gebruiken gcov omdat de
optimalisatie, door enkele regels code in één functie te combineren, levert u misschien niet zoveel op
informatie omdat u moet zoeken naar 'hotspots' waar de code veel
computertijd. Evenzo, omdat gcov verzamelt statistieken per regel (op de laagste
resolutie), werkt het het beste met een programmeerstijl die slechts één statement op elk plaatst
lijn. Als u ingewikkelde macro's gebruikt die uitbreiden naar loops of andere besturingsstructuren,
de statistieken zijn minder nuttig --- ze rapporteren alleen over de lijn waar de macro oproept
verschijnt. Als uw complexe macro's zich als functies gedragen, kunt u ze vervangen door inline
functies om dit probleem op te lossen.

gcov maakt een logbestand aan met de naam bronbestand.gcov die aangeeft hoe vaak elke regel van
een bronbestand bronbestand.c heeft uitgevoerd. U kunt deze logbestanden samen met: gprof naar
helpen bij het verfijnen van de prestaties van uw programma's. gprof geeft timing informatie u
kunt gebruiken samen met de informatie die u krijgt van gcov.

gcov werkt alleen op code die is gecompileerd met GCC. Het is niet compatibel met andere profilering
of testdekkingsmechanisme.

OPTIES


-h
--help
Help over het gebruik weergeven gcov (op de standaarduitvoer), en sluit af zonder iets te doen
verdere verwerking.

-v
--versie
Toon de gcov versienummer (op de standaarduitvoer), en sluit af zonder iets te doen
verdere verwerking.

-a
--alle-blokken
Schrijf individuele uitvoeringen voor elk basisblok. Normaal gcov-uitgangen
uitvoering telt alleen voor de hoofdblokken van een regel. Met deze optie kunt u
bepalen of blokken binnen een enkele regel niet worden uitgevoerd.

-b
--branch-waarschijnlijkheden
Schrijf vertakkingsfrequenties naar het uitvoerbestand en schrijf samenvattingsinformatie van vertakkingen naar de
standaard uitvoer. Met deze optie kunt u zien hoe vaak elke vertakking in uw programma
is genomen. Onvoorwaardelijke vertakkingen worden niet getoond, tenzij de -u optie wordt gegeven.

-c
--tak-tellingen
Schrijf vertakkingsfrequenties op als het aantal genomen vertakkingen, in plaats van het percentage
van takken genomen.

-n
--geen output
Maak niet de gcov uitvoer bestand.

-l
--lange-bestandsnamen
Maak lange bestandsnamen voor opgenomen bronbestanden. Als bijvoorbeeld het headerbestand xh
bevat code, en was opgenomen in het bestand ac, dan rennen gcov op het bestand ac
zal een uitvoerbestand produceren met de naam ac##xhgcov in plaats van xhgcov. Dit kan zijn
handig als xh is opgenomen in meerdere bronbestanden en u wilt het individu zien
bijdragen. Als u de -p optie, zowel de inclusief als de opgenomen bestandsnamen
zullen volledige padnamen zijn.

-p
--behoud-paden
Bewaar volledige padinformatie in de namen van gegenereerd .gcov bestanden. Zonder
deze optie, wordt alleen de component bestandsnaam gebruikt. Met deze optie worden alle mappen
worden gebruikt, met / karakters vertaald naar # karakters, . directory componenten verwijderd
en onverwijderbaar .. componenten hernoemd naar ^. Dit is handig als bronbestanden in
verschillende mappen.

-r
--alleen-relatief
Voer alleen informatie uit over bronbestanden met een relatieve padnaam (na bron
prefix-elisie). Absolute paden zijn meestal systeemkopbestanden en dekking van elke
inline-functies daarin zijn normaal gesproken oninteressant.

-f
--functie-samenvattingen
Uitvoersamenvattingen voor elke functie naast de samenvatting op bestandsniveau.

-o map|bestand
--object-map directory
--object-bestand filet
Geef de map op die de gcov-gegevensbestanden bevat, of de naam van het objectpad.
De .gcnr en .gcda Met deze optie wordt naar gegevensbestanden gezocht. Als een map is
opgegeven, bevinden de gegevensbestanden zich in die map en zijn ze genoemd naar de naam van het invoerbestand,
zonder zijn extensie. Als hier een bestand is opgegeven, worden de gegevensbestanden genoemd naar
dat bestand, zonder de extensie.

-s directory
--bron-voorvoegsel directory
Een voorvoegsel voor de namen van bronbestanden die moeten worden verwijderd bij het genereren van de uitvoerdekkingsbestanden.
Deze optie is handig bij het inbouwen van een aparte directory, en de padnaam naar de
source directory is niet gewenst bij het bepalen van de output bestandsnamen. Merk op dat dit
prefixdetectie wordt toegepast voordat wordt bepaald of het bronbestand absoluut is.

-u
--onvoorwaardelijke-takken
Wanneer vertakkingskansen worden gegeven, neem dan ook die van onvoorwaardelijke vertakkingen op.
Onvoorwaardelijke vertakkingen zijn normaal gesproken niet interessant.

-d
--weergave-voortgang
Geef de voortgang weer op de standaarduitvoer.

gcov moet worden uitgevoerd met de huidige map hetzelfde als die toen u de . aanriep
compiler. Anders kan het de bronbestanden niet vinden. gcov produceert bestanden
Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen. verminkte naam.gcov in de huidige map. Deze bevatten de dekkingsinformatie
van het bronbestand waarmee ze overeenkomen. Een .gcov bestand wordt geproduceerd voor elke bron (of
header) bestand met code, dat is gecompileerd om de gegevensbestanden te produceren. De
verminkte naam een deel van de naam van het uitvoerbestand is meestal gewoon de naam van het bronbestand, maar kan
iets ingewikkelder zijn als de -l or -p opties worden gegeven. Raadpleeg die opties
voor meer info.

Als je aanroept gcov met meerdere invoerbestanden zijn de bijdragen van elk invoerbestand:
opgeteld. Normaal gesproken zou je het aanroepen met dezelfde lijst met bestanden als de laatste link van
uw uitvoerbare bestand.

De .gcov bestanden bevatten de : gescheiden velden samen met de broncode van het programma. Het formaat
is

: :

Aanvullende blokinformatie kan op elke regel volgen, indien gevraagd door de opdrachtregeloptie.
De uitvoering_telling is - voor regels die geen code bevatten. Niet-uitgevoerde regels zijn gemarkeerd #####
or ====, afhankelijk van of ze bereikbaar zijn via niet-uitzonderlijke paden of alleen
uitzonderlijke paden zoals C++ exception handlers, respectievelijk.

Sommige regels met informatie aan het begin hebben regel_nummer van nul. Deze preambuleregels zijn:
van het formulier

-:0: :

De volgorde en het aantal van deze preambuleregels zullen worden uitgebreid als: gcov ontwikkeling
vordert --- vertrouw er niet op dat ze ongewijzigd blijven. Gebruik maken van label om een ​​bepaalde te lokaliseren
preambule regel.

De aanvullende blokinformatie is van het formulier



De informatie is leesbaar voor mensen, maar ontworpen om eenvoudig genoeg te zijn voor machineparsing
ook.

Bij het afdrukken van percentages worden 0% en 100% alleen afgedrukt als de waarden zijn precies 0% en
100% respectievelijk. Andere waarden die conventioneel zouden worden afgerond op 0% of 100% zijn
in plaats daarvan afgedrukt als de dichtstbijzijnde niet-grenswaarde.

Tijdens gebruik gcov, moet u eerst uw programma compileren met twee speciale GCC-opties:
-fprofile-bogen -fest-dekking. Dit vertelt de compiler om extra
informatie die gcov nodig heeft (eigenlijk een stroomdiagram van het programma) en bevat ook:
extra code in de objectbestanden voor het genereren van de benodigde extra profileringsinformatie
door gcov. Deze extra bestanden worden in de map geplaatst waar het objectbestand zich bevindt
bevindt.

Als u het programma uitvoert, wordt er profieluitvoer gegenereerd. Voor elk bronbestand
samengesteld met -fprofile-bogen, een begeleidend .gcda bestand wordt in het objectbestand geplaatst
directory.

Hardlopen gcov met de bronbestandsnamen van je programma als argumenten zal nu een lijst produceren
van de code samen met de uitvoeringsfrequentie voor elke regel. Als uw programma bijvoorbeeld
wordt genoemd tmp.c, dit is wat je ziet als je de basis gebruikt gcov faciliteit:

$ gcc -fprofile-arcs -ftest-dekking tmp.c
$ a.uit
$ gcov tmp.c
90.00% van 10 bronregels uitgevoerd in bestand tmp.c
tmp.c.gcov aanmaken.

Het bestand tmp.c.gcov bevat uitvoer van gcov. Hier is een voorbeeld:

-: 0:Bron:tmp.c
-: 0:Grafiek:tmp.gcno
-: 0:Gegevens:tmp.gcda
-: 0:Loopt:1
-: 0:Programma's:1
-: 1:#include
-: 2:
-: 3:int hoofd (ongeldig)
1: 4:{
1: 5: int i, totaal;
-: 6:
1: 7: totaal = 0;
-: 8:
11: 9: voor (i = 0; ik < 10; i++)
10: 10: totaal += i;
-: 11:
1: 12: als (totaal != 45)
#####: 13: printf ("Mislukt\n");
-: 14: anders
1: 15: printf ("Succes\n");
1: 16: retour 0;
-: 17:}

Wanneer u gebruik maken van de -a optie, krijgt u individuele bloktellingen en ziet de uitvoer eruit
soortgelijk:

-: 0:Bron:tmp.c
-: 0:Grafiek:tmp.gcno
-: 0:Gegevens:tmp.gcda
-: 0:Loopt:1
-: 0:Programma's:1
-: 1:#include
-: 2:
-: 3:int hoofd (ongeldig)
1: 4:{
1: 4-blok 0
1: 5: int i, totaal;
-: 6:
1: 7: totaal = 0;
-: 8:
11: 9: voor (i = 0; ik < 10; i++)
11: 9-blok 0
10: 10: totaal += i;
10: 10-blok 0
-: 11:
1: 12: als (totaal != 45)
1: 12-blok 0
#####: 13: printf ("Mislukt\n");
$$$$$: 13-blok 0
-: 14: anders
1: 15: printf ("Succes\n");
1: 15-blok 0
1: 16: retour 0;
1: 16-blok 0
-: 17:}

In deze modus wordt elk basisblok slechts op één regel weergegeven - de laatste regel van het blok. EEN
blok met meerdere regels draagt ​​alleen bij aan het aantal uitvoeringen van die laatste regel, en andere
regels worden niet weergegeven met code, tenzij eerdere blokken op die regels eindigen. De
het totale aantal uitvoeringen van een regel wordt weergegeven en de daaropvolgende regels tonen het aantal uitvoeringen
voor individuele blokken die op die regel eindigen. Na elk blok tellen de branch en call mee
van het blok wordt weergegeven, als de -b optie wordt gegeven.

Vanwege de manier waarop GCC-instrumenten oproepen, kan een oproeptelling worden weergegeven na een regel met nee
individuele blokken. Zoals je kunt zien, bevat regel 13 een basisblok dat niet is uitgevoerd.

Wanneer u gebruik maken van de -b optie ziet uw uitvoer er als volgt uit:

$ gcov -b tmp.c
90.00% van 10 bronregels uitgevoerd in bestand tmp.c
80.00% van 5 vertakkingen uitgevoerd in bestand tmp.c
80.00% van de 5 vertakkingen die minstens één keer zijn genomen in het bestand tmp.c
50.00% van 2 oproepen uitgevoerd in bestand tmp.c
tmp.c.gcov aanmaken.

Hier is een voorbeeld van een resultaat tmp.c.gcov file:

-: 0:Bron:tmp.c
-: 0:Grafiek:tmp.gcno
-: 0:Gegevens:tmp.gcda
-: 0:Loopt:1
-: 0:Programma's:1
-: 1:#include
-: 2:
-: 3:int hoofd (ongeldig)
functie hoofdnaam 1 geretourneerd 1 blokken uitgevoerd 75%
1: 4:{
1: 5: int i, totaal;
-: 6:
1: 7: totaal = 0;
-: 8:
11: 9: voor (i = 0; ik < 10; i++)
tak 0 bezet 91% (fallthrough)
tak 1 bezet 9%
10: 10: totaal += i;
-: 11:
1: 12: als (totaal != 45)
tak 0 bezet 0% (fallthrough)
tak 1 bezet 100%
#####: 13: printf ("Mislukt\n");
oproep 0 nooit uitgevoerd
-: 14: anders
1: 15: printf ("Succes\n");
bel 0 belde 1 terug 100%
1: 16: retour 0;
-: 17:}

Voor elke functie wordt een regel afgedrukt die aangeeft hoe vaak de functie wordt aangeroepen, hoe
vaak keert het terug en welk percentage van de functieblokken is uitgevoerd.

Voor elk basisblok wordt een regel afgedrukt na de laatste regel van het basisblok dat beschrijft:
de tak of oproep die het basisblok beëindigt. Er kunnen meerdere vestigingen en oproepen zijn
vermeld voor een enkele bronregel als er meerdere basisblokken zijn die op die regel eindigen.
In dit geval krijgen de vestigingen en oproepen elk een nummer. Er is geen eenvoudige manier om
breng deze takken in kaart en roept terug naar bronconstructies. Over het algemeen echter de laagste
genummerde tak of aanroep komt overeen met de meest linkse constructie op de bronregel.

Voor een vertakking, als het minstens één keer is uitgevoerd, dan een percentage dat het aantal . aangeeft
keer dat de vertakking is genomen gedeeld door het aantal keren dat de vertakking is uitgevoerd, wordt
gedrukt. Anders wordt het bericht "nooit uitgevoerd" afgedrukt.

Voor een oproep, als deze minstens één keer is uitgevoerd, dan een percentage dat het aantal . aangeeft
keer dat de oproep is geretourneerd, gedeeld door het aantal keren dat de oproep is uitgevoerd, wordt
gedrukt. Dit zal meestal 100% zijn, maar kan minder zijn voor functies die "exit" of . aanroepen
"longjmp", en komen dus mogelijk niet elke keer terug als ze worden aangeroepen.

De uitvoeringsaantallen zijn cumulatief. Als het voorbeeldprogramma opnieuw zou worden uitgevoerd zonder
het verwijderen van de .gcda bestand, de telling voor het aantal keren dat elke regel in de bron was
uitgevoerd zou worden toegevoegd aan de resultaten van de vorige run(s). Dit is mogelijk nuttig
op meerdere manieren. Het kan bijvoorbeeld worden gebruikt om gegevens te verzamelen over een aantal
programma wordt uitgevoerd als onderdeel van een testverificatiesuite, of om nauwkeurigere langetermijn
informatie over een groot aantal programma-uitvoeringen.

De gegevens in de .gcda bestanden worden direct opgeslagen voordat het programma wordt afgesloten. voor elk
bronbestand gecompileerd met -fprofile-bogen, de profileringscode probeert eerst een in te lezen
bestaand .gcda het dossier; als het bestand niet overeenkomt met het uitvoerbare bestand (verschillend aantal basis
aantal blokken) negeert het de inhoud van het bestand. Het voegt dan toe aan de nieuwe uitvoering
telt en schrijft tenslotte de gegevens naar het bestand.

gebruik gcov Met GCC Optimalisatie

Als je van plan bent om te gebruiken gcov om je code te helpen optimaliseren, moet je eerst je programma compileren
met twee speciale GCC-opties: -fprofile-bogen -fest-dekking. Afgezien daarvan kun je
andere GCC-opties gebruiken; maar als je wilt bewijzen dat elke regel in je programma
is uitgevoerd, moet u niet tegelijkertijd met optimalisatie compileren. Op sommige machines
de optimizer kan enkele eenvoudige coderegels elimineren door ze te combineren met andere regels.
Code als volgt bijvoorbeeld:

als (a != b)
c = 1;
anders
c = 0;

kan op sommige machines in één instructie worden gecompileerd. In dit geval is er geen manier om
gcov om afzonderlijke uitvoeringen voor elke regel te berekenen omdat er geen afzonderlijke is
code voor elke regel. vandaar de gcov output ziet er als volgt uit als je het programma hebt gecompileerd:
met optimalisatie:

100: 12:als (a != b)
100: 13: c = 1;
100: 14:anders
100: 15: c = 0;

De uitvoer laat zien dat dit codeblok, gecombineerd door optimalisatie, 100 keer is uitgevoerd.
In zekere zin is dit resultaat correct, omdat er maar één instructie was die
alle vier deze lijnen. De uitvoer geeft echter niet aan hoe vaak het resultaat
0 was en hoe vaak het resultaat 1 was.

Inlineable functies kunnen onverwachte regeltellingen veroorzaken. Regeltellingen worden getoond voor de
broncode van de inlineable functie, maar wat wordt getoond hangt af van waar de functie zich bevindt
inline, of helemaal niet.

Als de functie niet inline is, moet de compiler een out-of-line kopie van de
functie, in elk objectbestand dat het nodig heeft. Indien bestandA.o en bestandB.o beide bevatten uit
regellichamen van een bepaalde inlineable functie, ze zullen ook beide dekking bevatten
telt voor die functie. Wanneer bestandA.o en bestandB.o met elkaar zijn verbonden, zal de linker,
op veel systemen, selecteer een van die buiten de lijn liggende instanties voor alle oproepen naar die functie,
en verwijder of negeer de andere. Helaas worden de dekkingstellers niet verwijderd
voor het ongebruikte functielichaam. Vandaar dat wanneer geïnstrumenteerd, op één na alle gebruik van die functie
toont nul tellingen.

Als de functie op meerdere plaatsen inline is, kan de blokstructuur op elke locatie:
niet hetzelfde zijn. Een voorwaarde kan nu bijvoorbeeld berekenbaar zijn tijdens het compileren in
sommige gevallen. Omdat de dekking van alle toepassingen van de inline-functie wordt getoond
voor dezelfde bronregels kan het aantal regels zelf inconsistent lijken.

Langlopende toepassingen kunnen de faciliteiten "_gcov_reset" en "_gcov_dump" gebruiken om
beperk het verzamelen van profielen tot de programmaregio van belang. "_gcov_reset(void)" aanroepen
zal alle profieltellers op nul zetten en het aanroepen van "_gcov_dump(void)" zal de . veroorzaken
profielinformatie die op dat moment is verzameld om te worden gedumpt naar .gcda uitvoer bestanden.

Gebruik aarch64-linux-gnu-gcov-4.8 online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    PAC-manager
    PAC-manager
    PAC is een Perl/GTK-vervanging voor
    SecureCRT/Putty/etc (linux
    ssh/telnet/... gui)... Het biedt een GUI
    om verbindingen te configureren: gebruikers,
    wachtwoorden, VERWACHT regel...
    PAC-manager downloaden
  • 2
    GeoServer
    GeoServer
    GeoServer is open source-software
    server geschreven in Java waarmee gebruikers
    om geospatiale gegevens te delen en te bewerken.
    Ontworpen voor interoperabiliteit, het
    publiceert d...
    GeoServer downloaden
  • 3
    Vuurvliegje III
    Vuurvliegje III
    Een gratis en open-source persoonlijke financiering
    manager. Firefly III beschikt over een
    dubbel boekhoudsysteem. Jij kan
    voer snel in en organiseer uw
    transacties ik...
    Vuurvlieg III downloaden
  • 4
    Apache OpenOffice-extensies
    Apache OpenOffice-extensies
    De officiële catalogus van Apache
    OpenOffice-extensies. Je zult vinden
    extensies variërend van woordenboeken tot
    hulpmiddelen om PDF-bestanden te importeren en verbinding te maken
    met ext...
    Apache OpenOffice-extensies downloaden
  • 5
    BidsprinkhanenBT
    BidsprinkhanenBT
    Mantis is een eenvoudig te implementeren, web
    gebaseerde bugtracker om productbugs te helpen
    volgen. Het vereist PHP, MySQL en een
    web Server. Bekijk onze demo en gehost
    offer...
    MantisBT downloaden
  • 6
    LAN Messenger
    LAN Messenger
    LAN Messenger is een p2p-chattoepassing
    voor intranetcommunicatie en niet
    een server nodig hebben. Diverse handige
    functies worden ondersteund, inclusief
    melden...
    LAN Messenger downloaden
  • Meer "

Linux-commando's

Ad