ããã¯ã³ãã³ã powerpc64le-linux-gnu-gcov-4.8 ã§ãUbuntu OnlineãFedora OnlineãWindows ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãMAC OS ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãªã©ãè€æ°ã®ç¡æãªã³ã©ã€ã³ ã¯ãŒã¯ã¹ããŒã·ã§ã³ã®ããããã䜿çšããŠãOnWorks ç¡æãã¹ãã£ã³ã° ãããã€ããŒã§å®è¡ã§ããŸãã
ããã°ã©ã ïŒ
NAME
gcov-ã«ãã¬ããžãã¹ãããŒã«
SYNOPSIS
gcov [-v|- ããŒãžã§ã³] [-h| - å©ããŠ]
[-a|-ãã¹ãŠã®ãããã¯]
[-b|-ãã©ã³ã確ç]
[-c|-ãã©ã³ãã«ãŠã³ã]
[-u|-ç¡æ¡ä»¶-ãã©ã³ã]
[-n|-åºåãªã]
[-l|-é·ããã¡ã€ã«å]
[-p|--ä¿åãã¹]
[-r|-çžå¯Ÿã®ã¿]
[-f|-é¢æ°-èŠçŽ]
[-o|-ãªããžã§ã¯ããã£ã¬ã¯ã㪠ãã£ã¬ã¯ããª|ãã¡ã€ã«]
[-s|--ãœãŒã¹ãã¬ãã£ãã¯ã¹ ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã]
[-d|--衚瀺é²è¡ç¶æ³]
ãã¡ã€ã«
DESCRIPTION
gcov ãã¹ãã«ãã¬ããžããã°ã©ã ã§ãã GCCãšé£æºããŠäœ¿çšããããã°ã©ã ãåæããŠ
ããå¹ççã§é«éã«å®è¡ãããã³ãŒããäœæãããã¹ããããŠããªãéšåãçºèŠããã®ã«åœ¹ç«ã¡ãŸã
ããã°ã©ã ã ããªãã䜿çšããããšãã§ããŸã gcov æé©åã®å ŽæãèŠã€ããã®ã«åœ¹ç«ã€ãããã¡ã€ãªã³ã°ããŒã«ãšããŠ
åªåã¯ããªãã®ã³ãŒãã«æã圱é¿ãäžããŸãã 䜿çšããããšãã§ããŸã gcov ä»ã®ãããã¡ã€ãªã³ã°ãšäžç·ã«
ããŒã«ã gprofãã³ãŒãã®ã©ã®éšåãæ倧ã®èšç®æéã䜿çšããŠããããè©äŸ¡ããŸãã
ãããã¡ã€ãªã³ã°ããŒã«ã¯ãã³ãŒãã®ããã©ãŒãã³ã¹ãåæããã®ã«åœ¹ç«ã¡ãŸãã 次ã®ãããªãããã¡ã€ã©ãŒã䜿çšãã gcov
or gprofã次ã®ãããªããã€ãã®åºæ¬çãªããã©ãŒãã³ã¹çµ±èšãèŠã€ããããšãã§ããŸãã
ã»ã³ãŒãã®åè¡ãå®è¡ãããé »åºŠ
ã»å®éã«å®è¡ãããã³ãŒãè¡
ã»ã³ãŒãã®åã»ã¯ã·ã§ã³ã䜿çšããèšç®æé
ã³ã³ãã€ã«æã«ã³ãŒããã©ã®ããã«æ©èœãããã«ã€ããŠãããã®ããšãç¥ã£ããããããããèŠãããšãã§ããŸã
ã©ã®ã¢ãžã¥ãŒã«ãæé©åããå¿ èŠããããã確èªããããã®ã¢ãžã¥ãŒã«ã gcov ã©ãã§åããã決ããã®ã«åœ¹ç«ã¡ãŸã
æé©åã«ã€ããŠã
ãœãããŠã§ã¢éçºè ã¯ããã¹ãã¹ã€ãŒããšé£æºããŠã«ãã¬ããžãã¹ãã䜿çšãã
ãœãããŠã§ã¢ã¯å®éã«ã¯ãªãªãŒã¹ã«ã¯ååã§ãã ãã¹ãã¹ã€ãŒãã¯ãããã°ã©ã ã
æåŸ ã©ããã«æ©èœããŸãã ã«ãã¬ããžããã°ã©ã ã¯ãããã°ã©ã ã®ã©ãã ããå®è¡ãããŠãããã確èªããããã«ãã¹ãããŸã
ãã¹ãã¹ã€ãŒãã éçºè ã¯ãã©ã®çš®é¡ã®ãã¹ãã±ãŒã¹ãè¿œå ããå¿ èŠãããããå€æã§ããŸãã
ããè¯ããã¹ããšããè¯ãæçµè£œåã®äž¡æ¹ãäœæããããã®ãã¹ãã¹ã€ãŒãã
䜿çšããå Žåã¯ãæé©åããã«ã³ãŒããã³ã³ãã€ã«ããå¿ èŠããããŸã gcov ãªããªã
ã³ãŒãã®ããã€ãã®è¡ãXNUMXã€ã®é¢æ°ã«çµåããããšã«ããæé©åã§ã¯ãããã»ã©å€ãã®ããšãåŸãããªãå ŽåããããŸã
ã³ãŒãã倧éã«äœ¿çšããŠããããããã¹ãããããæ¢ãå¿ èŠãããããã®æ å ±
ã³ã³ãã¥ãŒã¿ãŒã®æéã åæ§ã«ã gcov è¡ããšã«çµ±èšãèç©ããŸãïŒæäœã§ã
解å床ïŒãããããã«XNUMXã€ã®ã¹ããŒãã¡ã³ãã®ã¿ãé 眮ããããã°ã©ãã³ã°ã¹ã¿ã€ã«ã§æé©ã«æ©èœããŸã
ã©ã€ã³ã ã«ãŒããŸãã¯ä»ã®å¶åŸ¡æ§é ã«å±éããè€éãªãã¯ãã䜿çšããå Žåã
çµ±èšã¯ããŸã圹ã«ç«ã¡ãŸãã---ãã¯ããåŒã³åºãè¡ã«ã€ããŠã®ã¿å ±åããŸã
ã衚瀺ãããŸãã è€éãªãã¯ããé¢æ°ã®ããã«åäœããå Žåã¯ãããããã€ã³ã©ã€ã³ã«çœ®ãæããããšãã§ããŸã
ãã®åé¡ã解決ããããã®æ©èœã
gcov ãšåŒã°ãããã°ãã¡ã€ã«ãäœæããŸã ãœãŒã¹ãã¡ã€ã«.gcov ããã¯ãã®åè¡ãäœåãã瀺ããŸã
ãœãŒã¹ãã¡ã€ã« ãœãŒã¹ãã¡ã€ã«.c å®è¡ããŸããã ãããã®ãã°ãã¡ã€ã«ã¯ã gprof ããž
ããã°ã©ã ã®ããã©ãŒãã³ã¹ã埮調æŽããã®ã«åœ¹ç«ã¡ãŸãã gprof ã¿ã€ãã³ã°æ å ±ãæäŸããŸã
ããªããåŸãæ å ±ãšäžç·ã«äœ¿çšããããšãã§ããŸã gcov.
gcov GCCã§ã³ã³ãã€ã«ãããã³ãŒãã§ã®ã¿æ©èœããŸãã ä»ã®ãããã¡ã€ãªã³ã°ãšã¯äºææ§ããããŸãã
ãŸãã¯ã«ãã¬ããžã¡ã«ããºã ããã¹ãããŸãã
OPTIONS
-h
- å©ããŠ
䜿çšã«é¢ãããã«ãã衚瀺ãã gcov ïŒæšæºåºåäžïŒãäœãããã«çµäºããŸã
ãããªãåŠçã
-v
- ããŒãžã§ã³
衚瀺ãã gcov ããŒãžã§ã³çªå·ïŒæšæºåºåäžïŒãããã³äœãããã«çµäºããŸã
ãããªãåŠçã
-a
-ãã¹ãŠã®ãããã¯
åºæ¬ãããã¯ããšã«åå¥ã®å®è¡ã«ãŠã³ããæžã蟌ã¿ãŸãã éåžžãgcovåºå
å®è¡ã¯ãè¡ã®ã¡ã€ã³ãããã¯ã«å¯ŸããŠã®ã¿ã«ãŠã³ããããŸãã ãã®ãªãã·ã§ã³ã䜿çšãããšã次ã®ããšãã§ããŸã
XNUMXè¡å ã®ãããã¯ãå®è¡ãããŠããªããã©ãããå€å¥ããŸãã
-b
-ãã©ã³ã確ç
åå²é »åºŠãåºåãã¡ã€ã«ã«æžã蟌ã¿ãåå²èŠçŽæ å ±ãã«æžã蟌ã¿ãŸãã
æšæºåºåã ãã®ãªãã·ã§ã³ã䜿çšãããšãããã°ã©ã ã®åãã©ã³ãã®é »åºŠã確èªã§ããŸãã
æ®åœ±ãããã ç¡æ¡ä»¶ã®ãã©ã³ãã¯ã -u ãªãã·ã§ã³ãäžããããŸãã
-c
-ãã©ã³ãã«ãŠã³ã
åå²é »åºŠããããŒã»ã³ããŒãžã§ã¯ãªããååŸããåå²ã®æ°ãšããŠèšè¿°ããŸã
åãããæã®ã
-n
-åºåãªã
äœæããªãã§ãã ãã gcov åºåãã¡ã€ã«ã
-l
-é·ããã¡ã€ã«å
ã€ã³ã¯ã«ãŒãããããœãŒã¹ãã¡ã€ã«ã®é·ããã¡ã€ã«åãäœæããŸãã ããšãã°ãããããŒãã¡ã€ã«ã®å Žå xh
ã³ãŒããå«ãŸããŠããããã¡ã€ã«ã«å«ãŸããŠããŸãã 亀æµã次ã«å®è¡ gcov ãã¡ã€ã«äž 亀æµ
ãšåŒã°ããåºåãã¡ã€ã«ãçæããŸã ac ## xhgcov xhgcovã ããã¯
次ã®å Žåã«åœ¹ç«ã¡ãŸã xh è€æ°ã®ãœãŒã¹ãã¡ã€ã«ã«å«ãŸããŠããŠãåã ã®ãã¡ã€ã«ãèŠãã
è²¢ç®ã ããªãã䜿çšããå Žå -p ãªãã·ã§ã³ãã€ã³ã¯ã«ãŒããã¡ã€ã«åãšã€ã³ã¯ã«ãŒããã¡ã€ã«åã®äž¡æ¹
å®å šãªãã¹åã«ãªããŸãã
-p
--ä¿åãã¹
çæãããååã§å®å šãªãã¹æ å ±ãä¿æããŸã .gcov ãã¡ã€ã«ã ãããªã
ãã®ãªãã·ã§ã³ã§ã¯ããã¡ã€ã«åã³ã³ããŒãã³ãã®ã¿ã䜿çšãããŸãã ãã®ãªãã·ã§ã³ã䜿çšãããšããã¹ãŠã®ãã£ã¬ã¯ããªã
䜿çšããã / ã«ç¿»èš³ãããæå # ãã£ã©ã¯ã¿ãŒã . ãã£ã¬ã¯ããªã³ã³ããŒãã³ããåé€ãããŸãã
åãå€ãäžå¯èœ .. ã³ã³ããŒãã³ãã®ååã ^ã ããã¯ããœãŒã¹ãã¡ã€ã«ã
ããã€ãã®ç°ãªããã£ã¬ã¯ããªã
-r
-çžå¯Ÿã®ã¿
çžå¯Ÿãã¹åïŒãœãŒã¹ã®åŸïŒãæã€ãœãŒã¹ãã¡ã€ã«ã«é¢ããæ å ±ã®ã¿ãåºåããŸã
ãã¬ãã£ãã¯ã¹çç¥ïŒã 絶察ãã¹ã¯éåžžãã·ã¹ãã ããããŒãã¡ã€ã«ãšä»»æã®ã«ãã¬ããžã§ã
ãã®äžã®ã€ã³ã©ã€ã³é¢æ°ã¯éåžžãé¢çœããããŸããã
-f
-é¢æ°-èŠçŽ
ãã¡ã€ã«ã¬ãã«ã®èŠçŽã«å ããŠãåé¢æ°ã®èŠçŽãåºåããŸãã
-o ãã£ã¬ã¯ããª|ãã¡ã€ã«
-ãªããžã§ã¯ããã£ã¬ã¯ã㪠ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
-ãªããžã§ã¯ããã¡ã€ã« file
gcovããŒã¿ãã¡ã€ã«ãå«ããã£ã¬ã¯ããªãŸãã¯ãªããžã§ã¯ããã¹åã®ãããããæå®ããŸãã
ãã® .gcno, .gcda ãã®ãªãã·ã§ã³ã䜿çšããŠããŒã¿ãã¡ã€ã«ãæ€çŽ¢ããŸãã ãã£ã¬ã¯ããªã
æå®ãããšãããŒã¿ãã¡ã€ã«ã¯ãã®ãã£ã¬ã¯ããªã«ãããå ¥åãã¡ã€ã«åã«ã¡ãªãã§ååãä»ããããŸãã
ãã®æ¡åŒµãªãã ããã§ãã¡ã€ã«ãæå®ãããšãããŒã¿ãã¡ã€ã«ã®ååã¯æ¬¡ã®ããã«ãªããŸãã
ãã®ãã¡ã€ã«ãæ¡åŒµåãªãã
-s ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
--ãœãŒã¹ãã¬ãã£ãã¯ã¹ ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
åºåã«ãã¬ããžãã¡ã€ã«ãçæãããšãã«åé€ãããœãŒã¹ãã¡ã€ã«åã®ãã¬ãã£ãã¯ã¹ã
ãã®ãªãã·ã§ã³ã¯ãå¥ã®ãã£ã¬ã¯ããªã«ãã«ãããå Žåãããã³ãžã®ãã¹åã
åºåãã¡ã€ã«åã決å®ãããšãã«ãœãŒã¹ãã£ã¬ã¯ããªã¯å¿ èŠãããŸããã ããã«æ³šæããŠãã ãã
ãã¬ãã£ãã¯ã¹æ€åºã¯ããœãŒã¹ãã¡ã€ã«ã絶察ã§ãããã©ãããå€æããåã«é©çšãããŸãã
-u
-ç¡æ¡ä»¶-ãã©ã³ã
åå²ç¢ºçãæå®ããå Žåã¯ãç¡æ¡ä»¶åå²ã®ç¢ºçãå«ããŠãã ããã
ç¡æ¡ä»¶ã®åå²ã¯éåžžãé¢çœããããŸããã
-d
--衚瀺é²è¡ç¶æ³
æšæºåºåã«é²è¡ç¶æ³ã衚瀺ããŸãã
gcov ãåŒã³åºãããšããšåãçŸåšã®ãã£ã¬ã¯ããªã§å®è¡ããå¿ èŠããããŸã
ã³ã³ãã€ã©ã ããããªããšããœãŒã¹ãã¡ã€ã«ãèŠã€ããããšãã§ããŸããã gcov ãã¡ã€ã«ãçæããŸã
åŒã°ããŸã å£ããåå.gcov çŸåšã®ãã£ã¬ã¯ããªã«ãããŸãã ãããã«ã¯ã«ãã¬ããžæ å ±ãå«ãŸããŠããŸã
ãããã察å¿ãããœãŒã¹ãã¡ã€ã«ã®ã äžã€ .gcov ãã¡ã€ã«ã¯ãœãŒã¹ããšã«äœæãããŸãïŒãŸãã¯
ããããŒïŒããŒã¿ãã¡ã€ã«ãçæããããã«ã³ã³ãã€ã«ãããã³ãŒããå«ããã¡ã€ã«ã NS
ãã³ã°ã«å åºåãã¡ã€ã«åã®äžéšã¯éåžžãåã«ãœãŒã¹ãã¡ã€ã«åã§ããã
次ã®å Žåã¯ãã£ãšè€éã«ãªããŸã -l or -p ãªãã·ã§ã³ãäžããããŸãã ãããã®ãªãã·ã§ã³ãåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ã
åŒã³åºãå Žå gcov è€æ°ã®å ¥åãã¡ã€ã«ãããå Žåãåå ¥åãã¡ã€ã«ããã®å¯äžã¯æ¬¡ã®ãšããã§ãã
åèšã éåžžãã®æçµãªã³ã¯ãšåããã¡ã€ã«ã®ãªã¹ãã䜿çšããŠåŒã³åºããŸãã
å®è¡å¯èœãã¡ã€ã«ã
ãã® .gcov ãã¡ã€ã«ã«ã¯ã : ããã°ã©ã ã®ãœãŒã¹ã³ãŒããšãšãã«ãã£ãŒã«ããåé¢ããŸããã ãã©ãŒããã
is
ïŒ ïŒ
ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ã§èŠæ±ãããå Žåãè¿œå ã®ãããã¯æ å ±ãåè¡ã«ç¶ãå ŽåããããŸãã
ãã® å®è¡ã«ãŠã³ã is - ã³ãŒããå«ãŸãªãè¡ã®å Žåã æªå®è¡ã®è¡ã¯ããŒã¯ãããŸã #####
or ====ãäŸå€çã§ãªããã¹ã§å°éå¯èœãããããšãã®ã¿å°éå¯èœãã«ãã£ãŠç°ãªããŸã
ããããC ++äŸå€ãã³ãã©ãªã©ã®äŸå€ãã¹ã
éå§æã®æ å ±ã®ããã€ãã®è¡ã«ã¯ è¡çªå· ãŒãã®ã ãããã®åæè¡ã¯
ãã©ãŒã ã®
-ïŒ0ïŒ ïŒ
ãããã®ããªã¢ã³ãã«è¡ã®é åºãšæ°ã¯ã次ã®ããã«æ¡åŒµãããŸãã gcov éçº
é²æç¶æ³---å€æŽãããªããŸãŸã§ããããšã«äŸåããªãã§ãã ããã 䜿çšãã ã¿ã° ç¹å®ã®å ŽæãèŠã€ãã
åæè¡ã
è¿œå ã®ãããã¯æ å ±ã¯æ¬¡ã®åœ¢åŒã§ã
ãã® æ å ± 人éãèªãã圢åŒã§ãããæ©æ¢°ã®æ§æ解æã«ååã·ã³ãã«ã«ãªãããã«èšèšãããŠããŸã
ã®ããã«ãã³ãæã€æéãèŠã€ããŠããŸãã
ããŒã»ã³ããŒãžãå°å·ããå Žåã0ïŒ ãš100ïŒ ã¯ãå€ã次ã®å Žåã«ã®ã¿å°å·ãããŸãã æ£ç¢ºã« 0ïŒ ããã³
ãããã100ïŒ ã åŸæ¥ã¯0ïŒ ãŸãã¯100ïŒ ã«äžžããããä»ã®å€ã¯æ¬¡ã®ãšããã§ãã
代ããã«ãæãè¿ãéå¢çå€ãšããŠåºåãããŸãã
䜿çšæ gcovãæåã«XNUMXã€ã®ç¹å¥ãªGCCãªãã·ã§ã³ã䜿çšããŠããã°ã©ã ãã³ã³ãã€ã«ããå¿ èŠããããŸãã
-fprofile-arcs -ftest-ã«ãã¬ããžã ããã¯ãã³ã³ãã€ã©ã«è¿œå ã®çæãæ瀺ããŸã
gcovã«å¿ èŠãªæ å ±ïŒåºæ¬çã«ã¯ããã°ã©ã ã®ãããŒã°ã©ãïŒã
å¿ èŠãªè¿œå ã®ãããã¡ã€ãªã³ã°æ å ±ãçæããããã®ãªããžã§ã¯ããã¡ã€ã«å ã®è¿œå ã®ã³ãŒã
gcovã«ããã ãããã®è¿œå ãã¡ã€ã«ã¯ããªããžã§ã¯ããã¡ã€ã«ããããã£ã¬ã¯ããªã«é 眮ãããŸã
äœçœ®ããŠããŸãã
ããã°ã©ã ãå®è¡ãããšããããã¡ã€ã«åºåãçæãããŸãã ãœãŒã¹ãã¡ã€ã«ããš
ã§ã³ã³ãã€ã« -fprofile-arcsãä»éãã .gcda ãã¡ã€ã«ã¯ãªããžã§ã¯ããã¡ã€ã«ã«é 眮ãããŸã
ãã£ã¬ã¯ããªã«ãããŸãã
Running: gcov ããã°ã©ã ã®ãœãŒã¹ãã¡ã€ã«åãåŒæ°ãšããŠäœ¿çšãããšããªã¹ããçæãããŸã
åè¡ã®å®è¡é »åºŠãšãšãã«ã³ãŒãã®ã ããšãã°ãããã°ã©ã ã®å Žå
ãšåŒã°ãã tmp.cãããã¯åºæ¬ã䜿çšãããšãã«è¡šç€ºããããã®ã§ã gcov æœèšïŒ
$ gcc -fprofile-arcs -ftest-coverage tmp.c
$a.out
$ gcov tmp.c
ãã¡ã€ã«tmp.cã§å®è¡ããã90.00åã®ãœãŒã¹è¡ã®10ïŒ
tmp.c.gcovãäœæããŠããŸãã
ãã¡ã€ã« tmp.c.gcov ããã®åºåãå«ãŸããŠããŸã gcovã ããããµã³ãã«ã§ãïŒ
-ïŒ0ïŒãœãŒã¹ïŒtmp.c
-ïŒ0ïŒã°ã©ãïŒtmp.gcno
-ïŒ0ïŒããŒã¿ïŒtmp.gcda
-ïŒ0ïŒå®è¡ïŒ1
-ïŒ0ïŒããã°ã©ã ïŒ1
-ïŒ1ïŒ#include
-ïŒ2ïŒ
-ïŒ3ïŒint mainïŒvoidïŒ
1ïŒ4ïŒ{
1ïŒ5ïŒint iãåèš;
-ïŒ6ïŒ
1ïŒ7ïŒåèš= 0;
-ïŒ8ïŒ
11ïŒ9ïŒforïŒi = 0; i <10; i ++ïŒ
10:10ïŒåèš+ = i;
-ïŒ11ïŒ
1ïŒ12ïŒifïŒåèšïŒ= 45ïŒ
#####ïŒ13ïŒprintfïŒ "倱æ\ n"ïŒ;
-ïŒ14ïŒãã®ä»
1ïŒ15ïŒprintfïŒ "æå\ n"ïŒ;
1ïŒ16ïŒ0ãè¿ããŸãã
-ïŒ17ïŒ}
ããªãã䜿çšããŠããå Žå -a ãªãã·ã§ã³ãéžæãããšãåã ã®ãããã¯ã«ãŠã³ããååŸãããåºåã¯æ¬¡ã®ããã«ãªããŸãã
ãã®ãããªïŒ
-ïŒ0ïŒãœãŒã¹ïŒtmp.c
-ïŒ0ïŒã°ã©ãïŒtmp.gcno
-ïŒ0ïŒããŒã¿ïŒtmp.gcda
-ïŒ0ïŒå®è¡ïŒ1
-ïŒ0ïŒããã°ã©ã ïŒ1
-ïŒ1ïŒ#include
-ïŒ2ïŒ
-ïŒ3ïŒint mainïŒvoidïŒ
1ïŒ4ïŒ{
1ïŒ4ãããã¯0
1ïŒ5ïŒint iãåèš;
-ïŒ6ïŒ
1ïŒ7ïŒåèš= 0;
-ïŒ8ïŒ
11ïŒ9ïŒforïŒi = 0; i <10; i ++ïŒ
11ïŒ9ãããã¯0
10:10ïŒåèš+ = i;
10ïŒ10ãããã¯0
-ïŒ11ïŒ
1ïŒ12ïŒifïŒåèšïŒ= 45ïŒ
1ïŒ12ãããã¯0
#####ïŒ13ïŒprintfïŒ "倱æ\ n"ïŒ;
$$$$$ïŒ13ãããã¯0
-ïŒ14ïŒãã®ä»
1ïŒ15ïŒprintfïŒ "æå\ n"ïŒ;
1ïŒ15ãããã¯0
1ïŒ16ïŒ0ãè¿ããŸãã
1ïŒ16ãããã¯0
-ïŒ17ïŒ}
ãã®ã¢ãŒãã§ã¯ãååºæ¬ãããã¯ã¯XNUMXè¡ïŒãããã¯ã®æåŸã®è¡ïŒã«ã®ã¿è¡šç€ºãããŸãã NS
è€æ°è¡ã®ãããã¯ã¯ããã®æåŸã®è¡ã®å®è¡ã«ãŠã³ãã«ã®ã¿å¯äžãããã®ä»
åã®ãããã¯ããããã®è¡ã§çµäºããªãéããè¡ã«ã³ãŒããå«ãŸããŠããããšã¯ç€ºãããŸããã NS
è¡ã®åèšå®è¡æ°ã衚瀺ãããåŸç¶ã®è¡ã«å®è¡æ°ã衚瀺ãããŸã
ãã®è¡ã§çµããåã ã®ãããã¯ã«å¯ŸããŠã åãããã¯ã®åŸããã©ã³ããšã³ãŒã«ãã«ãŠã³ããããŸã
ãããã¯ã®ã衚瀺ãããŸãã -b ãªãã·ã§ã³ãäžããããŸãã
GCCã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã®åŒã³åºãæ¹æ³ã«ãããåŒã³åºãã«ãŠã³ãã¯ã
åã ã®ãããã¯ã ã芧ã®ãšããã13è¡ç®ã«ã¯å®è¡ãããªãã£ãåºæ¬ãããã¯ãå«ãŸããŠããŸãã
ããªãã䜿çšããŠããå Žå -b ãªãã·ã§ã³ã®å Žåãåºåã¯æ¬¡ã®ããã«ãªããŸãã
$ gcov -b tmp.c
ãã¡ã€ã«tmp.cã§å®è¡ããã90.00åã®ãœãŒã¹è¡ã®10ïŒ
ãã¡ã€ã«tmp.cã§å®è¡ããã80.00ã€ã®ãã©ã³ãã®5ïŒ
ãã¡ã€ã«tmp.cã§å°ãªããšã80.00åååŸããã5ã€ã®ãã©ã³ãã®XNUMXïŒ
ãã¡ã€ã«tmp.cã§å®è¡ããã50.00ã€ã®åŒã³åºãã®2ïŒ
tmp.c.gcovãäœæããŠããŸãã
çµæã®ãµã³ãã«ã¯æ¬¡ã®ãšããã§ã tmp.c.gcov ãã¡ã€ã«ïŒ
-ïŒ0ïŒãœãŒã¹ïŒtmp.c
-ïŒ0ïŒã°ã©ãïŒtmp.gcno
-ïŒ0ïŒããŒã¿ïŒtmp.gcda
-ïŒ0ïŒå®è¡ïŒ1
-ïŒ0ïŒããã°ã©ã ïŒ1
-ïŒ1ïŒ#include
-ïŒ2ïŒ
-ïŒ3ïŒint mainïŒvoidïŒ
1ãšåŒã°ããé¢æ°mainã¯ã1ïŒ å®è¡ããã75ãããã¯ãè¿ããŸãã
1ïŒ4ïŒ{
1ïŒ5ïŒint iãåèš;
-ïŒ6ïŒ
1ïŒ7ïŒåèš= 0;
-ïŒ8ïŒ
11ïŒ9ïŒforïŒi = 0; i <10; i ++ïŒ
ãã©ã³ã0ã¯91ïŒ ãååŸããŸããïŒãã©ãŒã«ã¹ã«ãŒïŒ
ãã©ã³ã1ã¯9ïŒ ãååŸããŸãã
10:10ïŒåèš+ = i;
-ïŒ11ïŒ
1ïŒ12ïŒifïŒåèšïŒ= 45ïŒ
ãã©ã³ã0ã¯0ïŒ ãååŸããŸããïŒãã©ãŒã«ã¹ã«ãŒïŒ
ãã©ã³ã1ã¯100ïŒ ãååŸããŸãã
#####ïŒ13ïŒprintfïŒ "倱æ\ n"ïŒ;
åŒã³åºã0ã¯å®è¡ãããŸããã§ãã
-ïŒ14ïŒãã®ä»
1ïŒ15ïŒprintfïŒ "æå\ n"ïŒ;
åŒã³åºã0åŒã³åºã1ã¯100ïŒ ãè¿ããŸãã
1ïŒ16ïŒ0ãè¿ããŸãã
-ïŒ17ïŒ}
é¢æ°ããšã«ãé¢æ°ãåŒã³åºãããåæ°ãšãã®æ¹æ³ã瀺ãè¡ãåºåãããŸãã
äœåºŠãè¿ãããé¢æ°ã®ãããã¯ã®äœããŒã»ã³ããå®è¡ããããã
åºæ¬ãããã¯ããšã«ãåºæ¬ãããã¯ã®æåŸã®è¡ã®åŸã«XNUMXè¡ãåºåãããŸãã
åºæ¬ãããã¯ãçµäºãããã©ã³ããŸãã¯ã³ãŒã«ã è€æ°ã®ãã©ã³ããšã³ãŒã«ãååšããå¯èœæ§ããããŸã
ãã®è¡ã§çµããè€æ°ã®åºæ¬ãããã¯ãããå Žåãåäžã®ãœãŒã¹è¡ã«å¯ŸããŠãªã¹ããããŸãã
ãã®å Žåããã©ã³ããšã³ãŒã«ã«ã¯ããããçªå·ãä»ããããŸãã ç°¡åãªæ¹æ³ã¯ãããŸãã
ãããã®ãã©ã³ããããããããœãŒã¹ã³ã³ã¹ãã©ã¯ãã«ã³ãŒã«ããã¯ããŸãã ãã ããäžè¬çã«ã¯æäœã§ã
çªå·ä»ãã®ãã©ã³ããŸãã¯ã³ãŒã«ã¯ããœãŒã¹è¡ã®å·Šç«¯ã®æ§æã«å¯Ÿå¿ããŸãã
ãã©ã³ãã®å Žåãå°ãªããšãXNUMXåå®è¡ãããå ŽåãããŒã»ã³ããŒãžã¯
ãã©ã³ããå®è¡ãããåæ°ããã©ã³ããå®è¡ãããåæ°ã§å²ããšã
å°å·ãããŸãã ãã以å€ã®å Žåã¯ããå®è¡ãããŸããã§ããããšããã¡ãã»ãŒãžãåºåãããŸãã
é話ã®å Žåãå°ãªããšãXNUMXåå®è¡ãããå Žåã¯ããã®æ°ã瀺ãããŒã»ã³ããŒãž
è¿ãããåŒã³åºããåŒã³åºããå®è¡ãããåæ°ã§å²ã£ãåæ°ã¯ã
å°å·ãããŸãã ããã¯éåžž100ïŒ ã§ããããexitããŸãã¯
ãlongjmpãã§ãããããåŒã³åºããããã³ã«è¿ããããšã¯éããŸããã
å®è¡åæ°ã¯çŽ¯ç©ãããŸãã ãµã³ãã«ããã°ã©ã ãå®è¡ããã«å床å®è¡ããå Žå
ãåé€ãã .gcda ãã¡ã€ã«ã®å ŽåããœãŒã¹ã®åè¡ã
å®è¡ããããã®ã¯ãåã®å®è¡ã®çµæã«è¿œå ãããŸãã ããã¯æœåšçã«æçšã§ã
ããã€ãã®æ¹æ³ã§ã ããšãã°ãè€æ°ã®ããŒã¿ãèç©ããããã«äœ¿çšã§ããŸãã
ããã°ã©ã ã¯ããã¹ãæ€èšŒã¹ã€ãŒãã®äžéšãšããŠããŸãã¯ããæ£ç¢ºãªé·æãæäŸããããã«å®è¡ãããŸã
å€æ°ã®ããã°ã©ã å®è¡ã«é¢ããæ å ±ã
å ã®ããŒã¿ .gcda ãã¡ã€ã«ã¯ãããã°ã©ã ãçµäºããçŽåã«ä¿åãããŸãã ããããã«ã€ããŠ
ã§ã³ã³ãã€ã«ããããœãŒã¹ãã¡ã€ã« -fprofile-arcsããããã¡ã€ãªã³ã°ã³ãŒãã¯æåã«èªã¿åããè©Šã¿ãŸã
æ¢åã® .gcda ãã¡ã€ã«; ãã¡ã€ã«ãå®è¡å¯èœãã¡ã€ã«ãšäžèŽããªãå ŽåïŒåºæ¬ã®æ°ãç°ãªã
ãããã¯ã«ãŠã³ãïŒãã¡ã€ã«ã®å 容ãç¡èŠããŸãã 次ã«ãæ°ããå®è¡ãè¿œå ããŸã
ã«ãŠã³ãããæåŸã«ããŒã¿ããã¡ã€ã«ã«æžã蟌ã¿ãŸãã
䜿ãæ¹ gcov ã GCC æé©å
䜿çšããäºå®ãããå Žå gcov ã³ãŒããæé©åããã«ã¯ãæåã«ããã°ã©ã ãã³ã³ãã€ã«ããå¿ èŠããããŸã
XNUMXã€ã®ç¹å¥ãªGCCãªãã·ã§ã³ã䜿çšïŒ -fprofile-arcs -ftest-ã«ãã¬ããžã ãããšã¯å¥ã«ãããªãã¯ããããšãã§ããŸã
ä»ã®GCCãªãã·ã§ã³ã䜿çšããŸãã ãã ããããã°ã©ã ã®ãã¹ãŠã®è¡ããã®ããšã蚌æãããå Žå
ãå®è¡ãããå Žåãæé©åãšåæã«ã³ã³ãã€ã«ããªãã§ãã ããã äžéšã®ãã·ã³ã§ã¯
ãªããã£ãã€ã¶ãŒã¯ãä»ã®è¡ãšçµã¿åãããããšã«ãããããã€ãã®åçŽãªã³ãŒãè¡ãåé€ã§ããŸãã
ããšãã°ã次ã®ãããªã³ãŒãã䜿çšããŸãã
ifïŒaïŒ= bïŒ
c = 1;
ã»ãã«
c = 0;
äžéšã®ãã·ã³ã§ã¯ãXNUMXã€ã®åœä»€ã«ã³ã³ãã€ã«ã§ããŸãã ãã®å Žåã
gcov åå¥ã«å®è¡ãããŠããªããããè¡ããšã«åå¥ã®å®è¡ã«ãŠã³ããèšç®ããŸã
åè¡ã®ã³ãŒãã åŸã£ãŠ gcov ããã°ã©ã ãã³ã³ãã€ã«ããå Žåã®åºåã¯æ¬¡ã®ããã«ãªããŸã
æé©åããïŒ
100ïŒ12ïŒifïŒaïŒ= bïŒ
100ïŒ13ïŒc = 1;
100ïŒ14ïŒãã®ä»
100ïŒ15ïŒc = 0;
åºåã¯ããã®ã³ãŒããããã¯ãæé©åã«ãã£ãŠçµã¿åããããŠ100åå®è¡ãããããšã瀺ããŠããŸãã
ããæå³ã§ã¯ããã®çµæã¯æ£ããã§ããããã¯ããè¡šãåœä»€ãXNUMXã€ãããªãããã§ãã
ãããã®XNUMXè¡ãã¹ãŠã ãã ããåºåã«ã¯çµæã®åæ°ã¯ç€ºãããŸãã
ã¯0ã§ãçµæã¯1ã§ããã
ã€ã³ã©ã€ã³åå¯èœãªé¢æ°ã¯ãäºæããªãè¡æ°ãäœæããå¯èœæ§ããããŸãã ã®è¡æ°ã衚瀺ãããŸã
ã€ã³ã©ã€ã³åå¯èœãªé¢æ°ã®ãœãŒã¹ã³ãŒãã§ããã衚瀺ãããå 容ã¯é¢æ°ã®å Žæã«ãã£ãŠç°ãªããŸã
ã€ã³ã©ã€ã³åãããŠãããããŸã£ããã€ã³ã©ã€ã³åãããŠããªãå Žåã
é¢æ°ãã€ã³ã©ã€ã³åãããŠããªãå Žåãã³ã³ãã€ã©ãŒã¯ã
é¢æ°ããããå¿ èŠãšããä»»æã®ãªããžã§ã¯ããã¡ã€ã«ã ããã ãã¡ã€ã«A.o ãš ãã¡ã€ã«B.o äž¡æ¹ãå«ãŸããŠããŸã
ç¹å®ã®ã€ã³ã©ã€ã³åã§ããªãæ©èœã®ã©ã€ã³ããã£ããããã¯äž¡æ¹ãšãã«ãã¬ããžãå«ã¿ãŸã
ãã®æ©èœã®ããã«æ°ããŸãã ã〠ãã¡ã€ã«A.o ãš ãã¡ã€ã«B.o äžç·ã«ãªã³ã¯ãããŠããå Žåããªã³ã«ãŒã¯ã
å€ãã®ã·ã¹ãã ã§ã¯ããã®é¢æ°ãžã®ãã¹ãŠã®åŒã³åºãã«å¯ŸããŠãè¡å€ã®æ¬äœã®XNUMXã€ãéžæããŸãã
ããäžæ¹ãåé€ãŸãã¯ç¡èŠããŸãã æ®å¿µãªãããã«ãã¬ããžã«ãŠã³ã¿ãŒã¯åé€ãããŸãã
æªäœ¿çšã®æ©èœæ¬äœçšã ãããã£ãŠãã€ã³ã¹ãã«ã¡ã³ãåãããå Žåããã®æ©èœã®XNUMXã€ãé€ããã¹ãŠã®äœ¿çš
ãŒãã«ãŠã³ãã衚瀺ãããŸãã
é¢æ°ãè€æ°ã®å Žæã«ã€ã³ã©ã€ã³åãããŠããå Žåãåå Žæã®ãããã¯æ§é ã¯æ¬¡ã®ããã«ãªããŸãã
åãã§ã¯ãããŸããã ããšãã°ãæ¡ä»¶ã¯ã³ã³ãã€ã«æã«èšç®ã§ããããã«ãªããŸããã
ããã€ãã®ã€ã³ã¹ã¿ã³ã¹ã ã€ã³ã©ã€ã³é¢æ°ã®ãã¹ãŠã®äœ¿çšæ³ã®ã«ãã¬ããžã衚瀺ããããã
åããœãŒã¹è¡ã®å Žåãè¡æ°èªäœã«äžè²«æ§ããªãããã«èŠããå ŽåããããŸãã
é·æéå®è¡ãããã¢ããªã±ãŒã·ã§ã³ã¯ãã_ gcov_resetãããã³ã_gcov_dumpãæ©èœã䜿çšããŠ
ãããã¡ã€ã«ã®åéã察象ã®ããã°ã©ã é åã«å¶éããŸãã ã_gcov_resetïŒvoidïŒãã®åŒã³åºã
ãã¹ãŠã®ãããã¡ã€ã«ã«ãŠã³ã¿ãŒããŒãã«ã¯ãªã¢ããã_ gcov_dumpïŒvoidïŒããåŒã³åºããšã
ãã®æç¹ã§åéããããã³ãããããããã¡ã€ã«æ å ± .gcda åºåãã¡ã€ã«ã
onworks.net ãµãŒãã¹ã䜿çšããŠãªã³ã©ã€ã³ã§ powerpc64le-linux-gnu-gcov-4.8 ã䜿çšãã