Gcov
Gcov je bezplatný nástroj pro pokrytí kódu . Gcov generuje přesný počet provedení pro každý příkaz v programu a umožňuje přidávat anotace do zdrojového kódu. Gcov je dodáván jako standardní nástroj v balíčku GCC . [jeden]
Obslužný program gcov poskytuje informace o tom, kolikrát byl každý kus kódu spuštěn, když je program spuštěn. [2] Anotovaný zdrojový kód je uložen v novém souboru obsahujícím počítadla spuštění a text programu. Na rozdíl od gprof nevytváří žádná data závislá na délce trvání kódu. Pracuje hlavně s programy kompilovanými pomocí GNU GCC. Není kompatibilní s jinými nástroji pro profilování nebo testování pokrytí. [3]
Popis
gcov vytváří soubor analýzy pokrytí pro speciálně vybavené programy. Možnosti -fprofile-arcs -ftest-coverageje nutné použít při sestavování programů pro analýzu pokrytí. První možnost ukládá statistiku provádění řádků zdrojového souboru a druhá možnost zaznamenává statistiku podmíněných skoků (větvení). [2] Po spuštění takového programu se vytvoří několik souborů s příponami ".bb", ".bbg", ".da", které může gcov analyzovat. Přebírá názvy zdrojových souborů jako argument příkazového řádku a vytváří anotovaný výpis. Každému řádku zdrojového kódu předchází počet spuštění; řádky, které nebyly nikdy provedeny, jsou označeny předponou "#####". [2]
gcov vytvoří soubor název_zdroje.gcov , který udává, kolikrát byl proveden každý řádek zdrojového souboru název_zdroje.c .
Možnosti příkazového řádku
Možnosti Gcov: [4] [5]
- -h ( --help ): Krátká nápověda
- -v ( --version ): Zobrazí verzi programu
- -a ( --all-blocks ): Tisk počítadel pro všechny základní bloky, nejen pro hlavní blok v řádku
- -b ( --branch-probabilities ): Uloží podmíněné frekvence větví do výstupního souboru a zobrazí statistiku větví na standardním výstupu. Bezpodmínečné skoky na této volbě nejsou zobrazeny, pokud není zadána volba -u.
- -c ( --branch-counts ): Uloží počty skoků jako přesné počty, nikoli procenta pravděpodobnosti
- -n ( --no-output ): Nevytvářejte výstupní soubor gcov
- -l ( --long-file-names ): Generuje dlouhé názvy souborů pro soubory zahrnuté v direktivě #included. Pokud například soubor záhlaví xh obsahuje spustitelný kód a byl zahrnut v souboru ac, spuštěním gcov na ac se místo xhgcov vytvoří soubor ac##xhgcov. To je užitečné, když je xh zahrnuto vícekrát do různých zdrojových souborů.
- -p ( --preserve-paths ): Zachová úplnou cestu v názvech generovaných souborů .gcov. Bez této volby se použije pouze název souboru, s ním název souboru a cesta k němu, ve kterém jsou všechny znaky '/' nahrazeny znaky '#'; adresáře '.' odstraněno; a komponenty '..' jsou přejmenovány na '^'. Užitečné v případech, kdy jsou zdrojové soubory uloženy ve více adresářích
- -f ( --function-summaries ): Kromě statistiky souborů vytiskne statistiku funkcí.
- -u ( --unconditional-branches ): Zahrnout statistiku nepodmíněných větví do statistik větví.
- -d ( --display-progress ): Zobrazí průběh zpracování.
Generátory sestav založené na gcov
Lcov je GUI pro gcov. Shromažďuje soubory gcov pro několik zdrojových souborů a vytváří sadu stránek HTML s kódem a informacemi o pokrytí. Stránky jsou také generovány pro usnadnění navigace. Lcov podporuje pokrytí linky, funkce, pobočky. [6]
Gcovr poskytuje nástroj pro správu využití gcov a generování souhrnných zpráv o pokrytí. Tento příkaz je založen na pythonovém balíčku coverage.py, který poskytuje podobný nástroj v Pythonu. Gcovr vytváří kompaktní, člověkem čitelné souhrnné zprávy, strojově čitelné zprávy XML nebo grafické zprávy HTML. Zprávy XML generované gcovr může Jenkins použít k poskytování grafických zpráv o pokrytí kódu. Gcovr podporuje měření pokrytí výpisů a poboček. [7]
Viz také
Poznámky
- ↑ Jak Gcov funguje - součást GCC . Archivováno z originálu 9. dubna 2014.
- ↑ 1 2 3 Brian J. Gough. Úvod do GCC - pro kompilátory GNU gcc a g++ - Testování pokrytí pomocí gcov . Archivováno 14. března 2013 na Wayback Machine Archived copy (odkaz není k dispozici) . Získáno 15. listopadu 2012. Archivováno z originálu 14. března 2013. (neurčitý)
- ↑ manuálová stránka gcov . Získáno 12. února 2012. Archivováno z originálu 8. ledna 2013. (neurčitý)
- ↑ gnu.org. Gcov Možnosti příkazového řádku . Datum přístupu: 11. února 2012. Archivováno z originálu 8. ledna 2013. (neurčitý)
- ↑ linuxové příkazy. Gcov Možnosti příkazového řádku . Získáno 12. února 2012. Archivováno z originálu 8. ledna 2013. (neurčitý)
- ↑ Lcov . Archivováno z originálu 8. ledna 2013. (neurčitý)
- ↑ Dokumentace gcovr - gcovr 4.1 . gcovr.com. Získáno 14. října 2019. Archivováno z originálu dne 14. října 2019. (neurčitý)