PVS-Studioéçã³ãŒãã¢ãã©ã€ã¶ãŒã«é¢ããããŸããŸãªäººã
ã®ã¬ãã¥ãŒã1ãæã«éããããšã«ããŸããã äžéšã®ã¬ãã¥ãŒã¯å®å
šã«æç€ºãããä»ã®äžéšã¯æç€ºãããŸãã é©åãªãªã³ã¯ãã¯ãªãã¯ãããšãå
ã®ã¬ãã¥ãŒã«æ
£ããããšãã§ããŸãã
PVS-Studioã«ã€ããŠã®ããã€ãã®èšèããããäœãããããªãå Žå
PVS-Studioã¯ãC / C ++ / C ++ 11ããã°ã©ãã³ã°èšèªã䜿çšããããã°ã©ãåãã®ããŒã«ã§ãã ãã®ããŒã«ã¯ãããã°ã©ã ã®ãœãŒã¹ã³ãŒãã®ãšã©ãŒããã®ä»ã®æ¬ ç¹ãèå¥ããéçã³ãŒãã¢ãã©ã€ã¶ãŒã§ãã ãã®ã¢ãã©ã€ã¶ãŒã¯ãWindowsã¢ããªã±ãŒã·ã§ã³éçºè
ã察象ãšããŠããŸãã çŸåšãPVS-Studioã¯Visual Studio 2005/2008/2010ã«çµ±åãããŠããããŸããªãVS 2012ããµããŒãããŸããMinGWã䜿çšããŠãã«ãããããããžã§ã¯ããæ€èšŒããããšãã§ããŸãã ãªã³ã¯ã§ã¢ãã©ã€ã¶ãŒã®è©³çްã確èªã§ããŸãïŒ
http :
//www.viva64.com/en/pvs-studio/ããã§ãèç©ãããã£ãŒãããã¯ã®äžéšãæ€èšããããšããå§ãããŸãã
ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®ãã§ãã¯ã«ã€ããŠ
ãžã§ã³ã»ã«ãŒããã¯ã«ããæçš¿
åºå
žïŒTwitterã®
æçš¿ ã
éçã³ãŒãåæããŒã«ãäžé£ã®ãªãŒãã³ãœãŒã¹ã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠãã®æ©èœãå®èšŒããã®ã¯çŽ æŽãããããšã§ãïŒ
http :
//www.viva64.com/en/a/0079/PVS-Studioã®äœ¿çšçµéšã«ã€ããŠã®John Carmack
ãžã§ã³ã»ã«ãŒããã¯ã«ããæçš¿
åºå
žïŒ
Static Code Analysisããã®åŒçšã
ç§ãåŠãã æ¬¡ã®ããŒã«ã¯
PVS-Studioã§ããã Visual Studioãšç°¡åã«çµ±åã§ãã䟿å©ãªãã¢ã¢ãŒãããããŸãïŒãã²ã詊ããã ããïŒïŒã /åæãšæ¯èŒãããšãPVS-Studioã¯éåžžã«é
ããªããŸããã/åæã®ãã€ã³ããããã§ã«å®å
šã«ã¯ãªãŒã³ã¢ãããããã³ãŒãã§ãããããã€ãã®è¿œå ã®é倧ãªãšã©ãŒãæããã«ããŸããã è«ççãªèгç¹ãããšã©ãŒã§ããæ¬ é¥ãèå¥ããããšã«å ããŠãããŒã«ã¯ãã³ãŒããéåžžã«é©åã«æžãããŠããŠããäžè¬çãªããã°ã©ããŒã®ãšã©ãŒã«é¢é£ããå€ãã®åé¡ãèŠã€ããããšãã§ããŸãã ããã€ãã®èª€ã£ãèŠåã衚瀺ãããããšã¯ã»ãŒä¿èšŒãããŠããŸããããããæ°ã«ããã®ã¯ããã®ãããªäžè¬çãªæ¬ é¥ã§ããä¿®æ£ããå¿
èŠãããå Žåãããããã§ãã
å€ãã®åªããèšäºãPVS-Studio
Webãµã€ãã§ç·šéãããŠããŸãããããã®ã»ãšãã©ã«ã¯ãããŒã«ãèŠã€ããããšãã§ããç¹å®ã®ã¿ã€ãã®ãšã©ãŒã瀺ããå®çžŸã®ãããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®äŸãå«ãŸããŠããŸãã éçã¢ãã©ã€ã¶ãŒã«ãã£ãŠçºè¡ãããããã€ãã®èŠåããã®èšäºã«è¿œå ããããšãèããŸããããPVS-Studioã®è³æã§ããã«è©³çްãªäŸãèŠã€ããããšãã§ããããšãããããŸããã ã ããç§ã¯ããªãã«ããããèŠãŠã¿ãããšããå§ãããŸãã
PVS-Studioã¯ããã°ã©ã ã§å€ãã®è峿·±ããã®ãèŠã€ããããšãã§ããŸã
æçš¿è
ïŒ
MetaQuotesåºå
žïŒèšäºã«é¢ãã
ã³ã¡ã³ã ïŒRUïŒã
ããã¯ããŸã£ããæ°ãããšã©ãŒæ€çŽ¢ã¢ãŒãã§åäœããéåžžã«åªããã¢ãã©ã€ã¶ãŒã§ãã
ããšãã°ãé·å¹Žã«ããã£ãŠãLint + Visual Lint +ããŒã«ã䜿çšããŠãããžã§ã¯ããç¶¿å¯ã«æŽçããŠãããPVS-Studioãå®è¡ããŠããŸãã
ããªãã¯ãã¹ãŠããã§ã«ã¯ãªã¢ãããŠãããšæããŸãã ãããããã®çµæããããžã§ã¯ãïŒäœçŸäžè¡ãã®C ++ã³ãŒãïŒã§ãæãæããªã³ããŒã¢ã³ãããŒã¹ããšã©ãŒãåãæ¡ä»¶åå²ã倿°ã®æ©æ¢°çãšã©ãŒãçºçããŸãã æ°æ¥éã®äœæ¥ãšãããžã§ã¯ãã¯ã次ã®çŸ€è¡ã®ãã¹ãåãé€ããŸãã
å人çã«ã¯ãPVS-Studioã«å€§åã³ããããšã¯ãããŸãããããã¯ãLintããã³Intel Parallel StudioïŒãã¹ãŠã©ã€ã»ã³ã¹äŸäžæžã¿ïŒãžã®çŽ æŽããã远å ã§ãã
ãã®ãããªäŒæ¥ã¯ãµããŒããããã¹ãã§ã-å¿ããã®åå¿ã
ããã¯ã°ã©ãŠã³ãã®ã€ã³ã¯ãªã¡ã³ã¿ã«åæã¯çŽ æŽããã
èè
ïŒ
ã»ã«ã²ã€ã»ãŽã©ãœãåºå
žïŒã
Visual StudioåãPVS-Studioéçã³ãŒãã¢ãã©ã€ã¶ãŒã®æŠèŠ ãã®èšäºããåŒçšã
äžè¬ã«ãPVS-Studioã¯ãããªãå°ãªãæ°ã®èª€æ€ç¥ã§äºçްã§ãªããšã©ãŒãæ€åºã§ããããšã瀺ããŸããïŒããšãã°ãVisual Studioã¯200以äžã®èŠåãäžããŸããïŒã åææé ã¯éåžžã«é
ããªããŸãããåã¢ã»ã³ããªã®åŸã«å€æŽããããã¡ã€ã«ã®ã¿ããã§ãã¯ã§ããããã¯ã°ã©ãŠã³ãã®ã€ã³ã¯ãªã¡ã³ã¿ã«åæãååšããããããã®æ¬ ç¹ã¯éšåçã«è£ãããŸãã Visual Studioãšã®çµ±åã¯éåžžã«ç°¡åã§éåžžã«äŸ¿å©ã§ãã
PVS-StudioãšPC-Lintããã³Klocworkã®æ¯èŒ
èè
ïŒ
ã¢ã¬ã¯ãµã³ããŒã»ããããåºå
žïŒèšäºã
Another PVS-Studio Testing ãïŒRUïŒããã®åŒçšã
PVS-Studioã¯Visual Studioã§ã®äœæ¥ã«ã®ã¿çŠç¹ãåœãŠãŠããããã§ãã ã€ã³ã¹ããŒã«åŸãã€ã³ã¹ããŒã«ãããããŒãžã§ã³ã®ã¹ã¿ãžãªã«èªåçã«çµ±åãããŸãã ããã§ãå¿
èŠãªçµ±åæé ã¯ãã¹ãŠçµäºããŸãã ã¹ã¿ãžãªèªäœãèµ·åããããã«æ®ããŸã-ãããŠãããã¯ãã§ã«æ°ããPVS-Studioã¡ãã¥ãŒé
ç®ãæã£ãŠããŸãã ãã®ãããªééçãªçµ±åã¯è³è³ã«å€ããŸããïŒ
...
åæçµæã¯ãPVS-Studioã®å¥ã®ã¿ãã«è¡šç€ºãããŸãã ãã¹ãŠãéåžžã«äŸ¿å©ã«è¡ãããŸããïŒçºèŠãããååé¡ïŒæœåšçïŒã«ã€ããŠã説æã衚瀺ãããå ŽæïŒãã¡ã€ã«ãšè¡ïŒãããã³ãã®ã¿ã€ãã®åé¡ã®è©³çްãªèª¬æãžã®ãªã³ã¯ïŒãããåé¡ã§ããçç±ãä¿®æ£æ¹æ³ãªã© 説æã¯éåžžã«è©³çްã«ãé«å質ã§è¡ãããŸãïŒ
...
æåŸã«ãPVS-StudioãšPC-Lintããã³Klocworkã®ç°¡åãªæ¯èŒã
PVS-Studioã¯PC-Lintãããã¯ããã«äœ¿ããããã§ãã PC-Lintã®äž»ãªåé¡ã¯ãæœåšçãªåé¡ãå€ãããããšã§ããããã©ã«ãèšå®ã®åããããžã§ã¯ãã§ã¯ã23,000以äžã®ã¡ãã»ãŒãžã衚瀺ãããŸãã ïŒPVS-Studio-42ã®ã¿ïŒã åæã«ãPC-Lintã¯ç¹°ãè¿ãçºçããåé¡ãé ãããšã¯ã§ããŸããïŒåã.hãã¡ã€ã«ã2ã€ã®.cãã¡ã€ã«ããæ¥ç¶ãããŠããå ŽåãPC-Lintã¯.hãã¡ã€ã«ã«åé¡ã2å衚瀺ããPVS-Studioã¯1åã ã衚瀺ããŸãïŒã ãŸããPC-Lintã§ã¯ã1ã€ã®åé¡ã誀æ€ç¥ãšããŠããŒã¯ããããšã¯ã§ããŸãããåé¡ã®ã¯ã©ã¹å
šäœãããªããã«ããããšããã§ããŸããã
ããã«ãPC-Lintã«ãã£ãŠçºè¡ããããã¬ããŒãžãã®å±±ãæãäžããã®ãè¯ãå ŽåãPVS-StudioãèŠã€ãããããå®éã®æœåšçãªåé¡ãèŠã€ããããšãã§ããŸãïŒããšãã°ãããã€ãã®ã¯ã©ã¹ã§ä»®æ³ãã¹ãã©ã¯ã¿ããªããæç¢ºã«å®çŸ©ãããŠããªãããšãèŠã€ãããŸããã§ããïŒã³ã³ã¹ãã©ã¯ã¿ãšããã©ã«ãã®ã³ã³ã¹ãã©ã¯ã¿ãã³ããŒããŸãïŒã ãã1ã€ã®ããšã¯ãPC-Lintã§ã¯ããããã®æçšãªã°ã¬ã€ã³ã¯éåžžãæ®ãã®äžã§ã "ãããããã»ã©é倧ãªã¡ãã»ãŒãžã§ã¯ãªããšããããšã§ãã
åæã«ãPC-Lintã¯ãã䜿ãããããVisual Studioãšã®çµ±åãéåžžã«ç°¡åã§ããã䜿çšããã®ã¯ã¯ããã«å°é£ã§ãã
ããããäžè¬çã«ãããã§PVS-Studioã¯è°è«ã®äœå°ã®ãªããªãŒããŒã§ãã ãã ãããåãåã£ãŠãããã䜿ã£ãŠäœæ¥ãéå§ã§ããããã§ããPC-Lintã«ã€ããŠã¯èšããŸããããçºè¡ããããã¹ãŠã®ã¡ãã»ãŒãžã衚瀺ããã«ã¯æ°æ¥ãããããšããããŸãã
ããããKlocwork PVS-Studioãšæ¯èŒãããšãæ®å¿µãªããè² ããŠããŸãã ãŸã第äžã«ã䜿ããããïŒãã«ãããšã®ã¹ããŒã¿ã¹ã¢ãã¿ãªã³ã°-ä¿®æ£ãããåé¡ã®æ°ãæ®ã£ãŠããæ°ã远å ãããæ°ãããã³äŸ¿å©ãªã¬ããŒãã®ã¿ïŒãæ±çšæ§ãããã³éå€§ãªæœåšçãªåé¡ã®ããè¯ãèå¥ã«æ³šç®ããŸãã ããã«ãKlocworkã¯ãµãŒããŒããŒã¹ã®ãã«ããŠãŒã¶ãŒã·ã¹ãã ã§ãããæ€åºãããååé¡ã«è²¬ä»»ãå²ãåœãŠãè€æ°ã®ãããžã§ã¯ããäžåºŠã«åŠçããŠãããããã®ã¹ããŒã¿ã¹ãç°¡åã«è¿œè·¡ã§ããŸãã
äŸ¡æ Œã§æ¯èŒãããšããã®ãããªã¬ã€ã¢ãŠããåŸãããŸãïŒéçºè
ã®Webãµã€ãããã®æ
å ±ïŒã
- PVS-Studioã®å Žåã1幎éã®äœ¿çšã«å¯ŸããŠ5ã©ã€ã»ã³ã¹ã§3500ãŠãŒãã30ã©ã€ã»ã³ã¹ã§9000ãŠãŒããèŠæ±ããŸãã
- PC-Lintã®å Žå-1ã©ã€ã»ã³ã¹ã§389ãã«ã3,500ãã«-10ã§ç¡å¶éã
- Klocworkã®å ŽåãããµãŒããŒ+ 20ã¯ã©ã€ã¢ã³ããããã±ãŒãžã§1幎éã®äœ¿çšã§30,000ãŠãŒãã
ãŸããäŸ¡æ Œã¯æ©èœã«ã»ãŒå¯Ÿå¿ããŠãããPVS-Studioã¯å®äŸ¡ã§ãããéããŠäžäŸ¿ãªPC-LintãšäŸ¿å©ã§çŸãããé«äŸ¡ãªKlocworkã®äžéã«äœçœ®ããŠããŸãã
ãã®ãµã€ãã«ã¯è峿·±ãè³æããããŸã
æçš¿è
ïŒjustinvh
åºå
žïŒreddit.comã®
ã³ã¡ã³ã ã
æ£çŽãªãšãããPVS-StudioããŒã«ãã©ãã»ã©è峿·±ããã®ã§ãããã«é©ããŸããã ããã«ãä»å±è³æã¯æç¢ºãã€æç¢ºã«æžãããŠããŸãã ãã®ããŒã«ã«ã¯ãå°ãªããšãå°ãæ
£ããŠããã®æ©èœãçè§£ãã䟡å€ããããŸãã ç§ã¯éåžžãå°ããªãšã©ãŒãåŠçããããã«clangéçã¢ãã©ã€ã¶ãŒã䜿çšããŸããããPVS-Studioã¯64ãããã®åéã§äŸ¡å€ãããããšãæç¢ºã«ç€ºããŸããã
ããã«ã
64ãããã¬ãã¹ã³ã®ã³ã¬ã¯ã·ã§ã³ãèªãã®ã楜ããã£ãã§ãã
Doom3ãç§»æ€ãããšãã«äœ¿çšããŸãããéåžžã«ã¯ãŒã«ã§ãã éçºè
ã¯åŠçã«è¯ããµããŒããæäŸããã®ã§ãéçã¢ãã©ã€ã¶ãŒã®æ¯èŒã«ã€ããŠå€§åŠã§è¬çŸ©ãè¡ãããå ŽåïŒç§ã®å Žåã®ããã«ïŒããŸãã¯åã«è£œåã«ã€ããŠè©³ããç¥ãããå Žåã¯ããããã«é»åã¡ãŒã«ãæžããŠãå¿
èŠãªãã®ããã¹ãŠå°ããŠãã ããã
æã
å¥åŠãªããšãèµ·ãããŸããããå°ãªããšãåäœäžã®ããŒã«ãèŠãã®ã¯éåžžã«è峿·±ããã®ã§ããã ä»®æ³ãã·ã³ã§æ¯åå®è¡ããå¿
èŠããã£ãã®ã¯æ®å¿µã§ãããVisual Studioãšç°¡åã«çµ±åã§ãããšããäºå®ã¯éåžžã«ã¯ãŒã«ã§ãã çŸåšãç§ã¯clangãããªããã»ããµãšããŠäœ¿çšããŠããŸããããã¹ãŠäžç·ã«åäœããã®ãéåžžã«é«éã§ãã
ã«ãŒããã¯ãèšã£ãããã« ãééããªããã°ãèŠã€ããã§ãããã
PVS-Studioã䜿çšãããšãéçã³ãŒãåæã®æ¹æ³ãç°¡åã«ç¿åŸã§ããŸãã
æçš¿è
ïŒã¢ã³ãã«
åºå
žïŒã
æŠèŠïŒPVS Studio ãã®èšäºããåŒçšã
éçè§£æãåããŠäœ¿çšããå Žåã¯ãPVS-Studioã詊ããŠã¿ãããšããå§ãããŸãïŒ
詊çšçããããŸã ïŒã C ++ã³ãŒãã®éçè§£æã¯ãŸã éçºã®åææ®µéã§ãããPVS-Studioãªã©ã®ããŒã«ã䜿çšãããšãé ãããšã©ãŒãèŠã€ããããšãã§ããŸãã ç¹ã«ããœãŒã¹ã³ãŒãããŒã¹ãåäœãã¹ãã§ãŸã æ€èšŒãããŠããªãå Žåãéçã¢ãã©ã€ã¶ãŒã¯ãããŒã¿ããŒã¹å
ã®ã©ã®ã³ãŒããã©ã°ã¡ã³ãã衚瀺ããå¿
èŠããããããã°ããéç¥ããŸãã
ã¯ãããŸã å¿ããŠããŸãããããŒã«ã¯å®æçã«æŽæ°ãããŠããããµããŒãã¯æ£åžžã«æ©èœããŠããŸãããã®ãããã¬ãã¥ãŒã®æåã«ãšã©ãŒãå ±åããæ°æ¥ã§ä¿®æ£ãããŸããã
ã¬ãã¥ãŒçšã®ã¢ãã©ã€ã¶ãŒã®ã³ããŒãæäŸããŠãããViva64ããŒã ã«åã³æè¬ããŸãã
PVS-Studioã¯ã64ããããã©ãããã©ãŒã ã®ãã¹ã¿ãªã³ã°ã«åœ¹ç«ã¡ãŸã
èè
ïŒã¢ã¬ãã¯ã¹ã»ãã£ãã£ãã·ããª
åºå
žïŒèšäºã
PVS-Studioã䜿çšããã³ãŒãæ€èšŒ ãïŒENïŒããã®åŒçšã
ç§ã¯ããŒã«å
šäœã奜ãã§ãã-ãµãŒããŒã³ãŒãã«é倧ã§ãªãåé¡ãããã€ãèŠã€ããŸããããæ£çŽãªãšãããã»ãšãã©ã®ã³ãŒããFlexeLintãšBoundCheckerã§å®è¡ããŸããïŒã©ã€ã»ã³ã¹ã®æå¹æéãåãããŸã§ïŒã ãŸãããããã°ãã«ãããã¹ãããããã«ã¢ã©ãŒãã¬ãã«4ã§Visual Studioãå®è¡ããŸããããå€ãã®æ¬ é¥ãèŠã€ãããŸããã
PVS-Studioã®äž»ãªã¡ãªããã¯ã32ãããã³ãŒãã®64ããããã©ãããã©ãŒã ãžã®è»¢éã«åœ±é¿ããæ¬ é¥ããã£ããã§ããããšã§ãã
ããã§ããŸãã
æçš¿è
ïŒ
ãã§ã«ãã³ãã»ã¢ã¬ã€ã©åºå
žïŒ
ãã¬ãŒã³ããŒã·ã§ã³ã®è§£èª¬ã
ãããç§ã¯å®éã«è©ŠããŠã¿ãŠããã«ãã¡ã³ã«ãªããŸãã:)ä»ãç§ãã¡ã®ç 究宀ã®ãã¹ãŠã®éçºè
ã«ããããå§ãããŸãã ãã®ããŒã«ã¯VSãšã·ãŒã ã¬ã¹ã«çµ±åãããéçºè
ã«éèŠãªããšãæããããšãã§ããç¹å®ã®çš®é¡ã®æªç¥ã®åé¡/ãã©ããã«æ³šæãåŒãããšãã§ããŸãã
ãããŸã§ã®ãšãããç§ã¯åäžã®èª€ã£ãèŠåãåããããšã¯ãããŸãããããã¯çŽ æŽãããããšã§ãïŒ
ããªããã¡ã¯çå£ãªä»äºãããŠããŸãïŒ
PVS-Studioããã³Coverity Advertisingã«ã€ããŠ
æçš¿è
ïŒnomarketingbs
åºå
žïŒäœã匷調ãããããããªãã®ã§ãèšäºã
éçè§£æçµæã衚瀺ããªãæ¹æ³ ããæ¿å
¥ããŸãã
Coverity SalesããCoverity Sales Approvals Seal of ApprovalãååŸããã«Coverityã詊ãããšã¯ã§ããªããšããæ²ããäºå®ã«å ããŠãCoverityãšPVS-Studioã®éã«ã¯èª°ããæ°ä»ãå¥ã®å€§ããªéãããããŸãã ããã¯...
忥ææ
æ¹æ³å
žåçãªPVS-Studioã¹ãã£ã³ã¬ããŒããèŠãŠã¿ãŸãããã
ããã¯ã¡ããã©ç§ã®è
ã«èœã¡ãã®ã§ãç§ã¯ããã«ãªã³ã¯ãäžããŸãã
ã¿ã€ããã¹...ããããªãã»ã©ã é
åãè¶
ããèœå...ãªãã»ã©ã ããã€ãã®ãã€ããŒãªæ¬ é¥...ãªãã»ã©ã ãããã®æ¬ ç¹ãããã°ã©ã ã®åäœã«ã©ã®ããã«åœ±é¿ãããã¯ããããŸãããããããã¯éåžžã«æç¢ºã«æç€ºãããŠããããããã«æ³šæãæãå¿
èŠããããšèããå Žåããã®éèŠæ§ãç°¡åã«è©äŸ¡ã§ããŸãã
ã³ãŒãã«ãããã®ã²ã©ããšã©ãŒããããããããã°ã©ã ãã©ã®ããã«æ©èœããã®ãçåã«æã人ããããããããŸããã
ãã¹ãŠãéåžžã«ç°¡åã§ãã ããã°ã©ã ã®ããã¹ãã§æããã«æããã«ãªã£ãŠããåé¡ã¯ãå€ãè¯ããããã°ãåäœãã¹ããå°éå®¶ã®è©äŸ¡ãªã©ãä»ã®æ¹æ³ã䜿çšããŠä»¥åã«çºèŠãããŸããã ããããä»ã®ãã¹ãŠã®æ¬ é¥ãèŠã€ããã«ã¯ãããã€ãã®åªåãããå¿
èŠããããŸãã ããã¯ãããšãã°ãç°åžžãªããŒã¿ã»ããã§ããå¯èœæ§ããããŸãã ãŸãã¯ãéå®åã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ã ãŸãã¯ãç°åžžãªãšã©ãŒè¡šç€ºã ãŸãã¯ãã³ã³ãã€ã©ãŸãã¯C ++ã©ã€ãã©ãªã®ããŒãžã§ã³ã®æŽæ°ãããããŸããã
ãšã©ãŒã¯ãšã©ãŒã§ãã 圌ããèšãããã«ãããªãã¯ã³ã³ãã€ã©ã«åãã€ãããšã¯ã§ããŸãããããã¹ãŠã®ãšã©ãŒãçããããã§ã¯ãããŸããã ãããã®éåžžã«å°ããªæ¬ é¥ã¯é·å¹ŽããŒã¿ããŒã¹ã«é ããããã®åŸèª°ãããããPVS-Studioã§å®è¡ããŸãããããŠãããªããŠãã£ããã©ãããŠæããããã°ãç¥MY1111 !!!ã-圌ã¯å«ã¶ã
ãã®ãããã¹ãã£ã³ã¬ããŒãã¯ããèªäœã§ã¯ããŸãæ©èœããŸããããšã«ãããã³ãŒãããŒã¹ã«ç²ŸéããŠããéçºè
ã¯ã瀺ãããååé¡ãè©äŸ¡ããå¯èœã§ããã°è§£æ±ºããå¿
èŠããããŸãã PVS-Studioã®ã¹ãã£ã³ã¬ããŒãã¯ãå¿
èŠãªåŠçãæ£ç¢ºã«å®è¡ããŸã-æ€åºããããšã©ãŒã次ã
ã«è¡šç€ºããç°¡åãªèª¬æãæäŸããŸã-ãã以äžã¯äœãããŸããã
ããªãæ¹æ³æ¬¡ã«ãã³ããªãã£ã®åçšè³æãèŠãŠã¿ãŸãããã äžèšã§åç
§ãããããªã³ããªãã£åæã®çµæãå«ãã¹ãã£ã³ã¬ããŒãã¯ã»ãšãã©èŠã€ãããŸããã åæã«ãCoverityã®ã¡ã³ããŒã¯ãIntegrity ReportããªãªãŒã¹ããããšããããŸãã
Integrity Reportã¯ããããã·ã§ã³ãããã·ãŒã ã¬ã¹ãããã€ãããŒã·ã§ã³ã«çŠç¹ãåœãŠãããªã©ã®èšèãå«ãç±ççãªããã¥ã¡ã³ãã§ãã çš®ãšããŠã¯æªããªã-å°ãªããšããã®ãããªããŒã¯ãŒãã®ååšã¯ãæåã®3ããŒãžã«ååãªããŒã±ãã£ã³ã°ãããããšãæç¢ºã«ç€ºããŠããã
衚Aã«é²ã¿ãŸã...ããããã®ãã¬ãŒãã¯ãããžã§ã¯ãã®ãµã€ãºååžã瀺ããŠããŸãã ã©ããããããããååžããšããèšèã®äœ¿çšã¯ãåéãããããŒã¿ãçµ±èšçã«ææã§ããããããã£ãŠç¹å¥ãªä¿¡é Œã«å€ããããšãæå³ããŸãã 45ã®ãããžã§ã¯ããããããããã«åºã¥ããŠã¹ã±ãžã¥ãŒã«ãäœæããããšããŠããå Žåããé
åžããšåŒã¶ã®ã¯éåžžã«æãã§ãã ã芧ã®ãšããã700äžè¡ãè¶
ããã³ãŒããå«ã2ã€ã®ãããžã§ã¯ãããããŸãã ä¿¡ããããªãã»ã©ãèšèã¯ãããŸããã
ã¬ããŒãã®æ®ãã®ããã¹ãã«ãããã®ãããªãŸã£ããæå³ã®ãªãã¿ãã¬ãããèšèŒãããŠããŸãã ã¯ãããããžã§ã¯ãã®1å¹³æ¹ãã£ãŒãããã9.7654ã®ãšã©ãŒãèŠã€ãã£ãã®ã¯çŽ æŽãããããšã§ãã ããããããªããããã°ã©ã ã詊ããŠã¿ããŸã§ããããã®æ°åã¯132ïŒ
ã®å¹çãéæããããšã«ã€ããŠã®å£°æä»¥äžã®ãã®ã§ã¯ãããŸããïŒ
æçš¿ã¯5幎åã§ãããããã§ãé¢é£ããŠããŸã ïŒã
ä»é²Aã«æ©éãããŸãã衚2ãšè¡š3ã¯ãšã©ãŒããŸãšããŠããŸãããåæã«ãšã©ãŒãåé¡ããããã°ã©ã ãžã®åœ±é¿ã®çšåºŠã瀺ããŠããŸãã èŠãŠã¿ãŸããã...
å¶åŸ¡ãããŒãšã©ãŒã ããã¯äœã§ãã ããã¯ããswitchããšããã¹ããŒãã¡ã³ãã®ãcaseãã®æåŸã«ãbreak;ããšæžãã®ãå¿ãããšãã§ãã ããªãã¯äžçšåºŠã®åœ±é¿ããããšèšããŸã...ããããŸããã ããã«è¿ããããmainïŒïŒãã¯ã©ãã§ããïŒ ãããå¶åŸ¡ãããŒãšã©ãŒã§ãããå¹³åçãªåœ±é¿ãããããšãæããŠãããŸããã ãã¹ãŠã®å¶åŸ¡ãããŒãšã©ãŒãå
¬å¹³ã§ãããšã¯éããŸããã
NULLãã€ã³ã¿ãŒã®éåç
§ãå¹³åçãªå¹æããããŸãããïŒ ãããç§ã®ã³ãŒãã¯ãã¡ãã¡ã§ãã«ãã€ã³ã¿ãŒãéåç
§ãããŠãŒã¶ãŒããã£ã³ãã£ãååŸãããã³ã«åç
§ããŸãã ãããããã¬ããŒãã®äœæè
ã¯ãã³ãŒããæåã«NULLã§ãªãããšã確èªããã«ãã€ã³ã¿ãŒãéåç
§ããå ŽåãNULLãã€ã³ã¿ãŒã®éåç
§ã®å¯èœæ§ã念é ã«çœ®ããŠããã®ã§ãããã è¯ããã¥ãŒã¹ã¯ãéåç
§ãããã³ã«NULLå€ãžã®ãã€ã³ã¿ãŒããã§ãã¯ãããšãã³ãŒããéåžžã«ä¹±éã«ãªãããšã§ãã ç¹°ãè¿ããŸããããã¹ãŠã®NULLãã€ã³ã¿ãŒéåç
§ãšã©ãŒãçããããã§ã¯ãããŸããã
ãšã©ãŒåŠçã®æ¬ é¥ã ããã¯äœã§ãã Win32 API颿°ã®ãšã©ãŒã³ãŒãããã§ãã¯ããããšãæå³ããŸããïŒ ãã¡ããããã®è©Šã¿ã®æåãè©äŸ¡ããã«ããã°ã©ã ããã¡ã€ã«ãéãããšãããã³ã«ãããã«èªã¿ç¶ãããšããŠãŒã¶ãŒã¯èšãã§ãããã ãã©ã«ããŒã«ã¢ã¯ã»ã¹ã§ããŸãããïŒ ããŠããã¡ã€ã«ãä¿åããããµããããŸãããã ãšã©ãŒåŠçã®ãã¹ãŠã®æ¬ é¥ãåããšããããã§ã¯ãããŸããã
æŽæ°åã®åé¡ã¯äžçšåºŠã®åœ±é¿ããããŸãã æ£ç¢ºã«ã¯ãå²ãåœãŠãããã¡ã¢ãªã®ãµã€ãºãèšç®ããéã®æŽæ°åã®ãªãŒããŒãããŒã¯æå³ããããŸããã ã©ãã ãçµæãåºããã匷調ãããããé©åãªéã§ãããšä»®å®ããŸãã æŽæ°åãæ±ãéã®åé¡ããã¹ãŠåããšããããã§ã¯ãããŸããã
å®å
šã§ãªãããŒã¿ãæäœãããšãå¹³åçãªåœ±é¿ããããŸãã äœèšã£ãŠãã®ïŒ æãããã¯ãããŸããããå®å
šã§ãªãããŒã¿ãæäœãããã¹ãŠã®ç¶æ³ãåããšããããã§ã¯ãªãããšãããããŸãã
誀ã£ã衚çŸ-äžçšåºŠã®é²åºã ãã¡ããã奜ããªããã«æ¬åŒ§ãä»ããŠãã ãã-äœãæªãã®ã§ãããã
åæã¢ã¯ã»ã¹ãšã©ãŒ-äžçšåºŠã®åœ±é¿ã ããªãã®äººçã®æ®ãã®éã圌ãã®ãããã°ãæãäžããŠèããŠãã ãããããã¯å€§äžå€«ã§ãã
API䜿çšãšã©ãŒ-äžçšåºŠã®åœ±é¿ã ããªãã®ã³ãŒãã¯èª€ã£ãŠãã¹ãæå®ããããšãå¿ããŠãããããã¯Windows \ System32ãã£ã¬ã¯ããªã«ãããã¹ãŠã®ãã®ã®åé€ã«ã€ãªãããŸãã ç§ã«ãšã£ãŠããééãã
ããã°ã©ã ãããªãŒãºãã-äžçšåºŠã®åœ±é¿ã ããã°ã©ã ã¯ãWindows NTãããã¯ãŒã¯å€ã®ã³ã³ãã¥ãŒã¿ãŒã§å®è¡ãããå Žåã«ã®ã¿ãã³ã°ããŸãã äŒæ¥ãããã¯ãŒã¯å
ã§ãããé転ããå±ç€ºäŒã«è¡ããšããã¹ãŠãããŸãæ©èœããã©ãããããã¯ç»é¢ãåããã©ãžãšãŒã¿ãŒã«å€ãããŸãã ãã³ã»ã³ã¹ã
åäžã®ã«ããŽãªã«äœã圱é¿åºŠãå²ãåœãŠãããŠããªãã®ã¯ãªãã§ããïŒ å€åãèè
ã¯ããããã©ã®ã°ã«ãŒãã«ãå«ãŸããŠãããããšããçç±ã ãã§ãããã°ã©ã ãšã©ãŒã®äœã¬ãã«ã®åœ±é¿ããããŠèããªãã£ãã®ã§ããããïŒ
ããã¯æ©èœããŸããã æ°åã®ãšã©ãŒãããã€ãã®ã«ããŽãªã«åæ£ãã圱é¿ã®çšåºŠãåŸè
ã«å²ãåœãŠãããšã¯ã§ããŸããã åã«äžå¯èœã§ãã ããªãããœãããŠã§ã¢éçºè
ã§ããã°ãçãäœå°ãªããããåãå
¥ããã¹ãã§ãããããªããã°ãããã«èŸããŠãæå¯ãã®ãã¯ããã«ãã«è¡ãæ¹ãè¯ãã§ãããã圌ãã«ã¯ãåŽåè
ãå¿
èŠã§ãããšãããµã€ã³ããããŸãã
ãã®å®å
šæ§ãã¹ãã¬ããŒãå
šäœã¯ãæ°åãšå³ã®åãªãããŸããã§ããããã®æçšæ§ã¯ãŒãã§ã¯ãªãããã€ãã¹ã§ãã ãã®ã¬ããŒãã¯ããœãããŠã§ã¢ã®åè³ªãæ°ã«ããããã¥ã¡ã³ããèªãããšã«ããäººã®æ»ãæããããŸãã
çµæããã§ã¯ãPVS-Studioã®åçšçŽ æãšCoverityã®éãã¯äœã§ããïŒ åè
ã¯ãè§£éããã³æ€èšŒã§ããäºå®ãæç€ºããŸãã 2çªç®ã®ãã®ã¯ãäžè¬åãããããŒã¿ã§ããªããæããããããšããã ãã§ããããããã§ãã¯ããæ©äŒãæäŸããŸããã
誰ããCoverityã®ç¡æè©Šçšçã«å€ããããã§ã¯ãªãããã§ãã
PVS-Studioã¯ãã³ãŒãã®åè³ªãæ°ã«ãã人ãšäžç·ã«ãã¹ãã§ãã
æçš¿è
ïŒ
Adam Savickiåºå
žïŒã
PVS-Studioã䜿çšããC ++ã³ãŒãã®éçåæ ãïŒENïŒã®èšäºããã®åŒçšã
äžè¬ã«ãPVS-Studioã¯ãã³ãŒãã®å質ãéèŠããC ++ããã°ã©ããŒã«ãšã£ãŠã¯è¯ãããŒã«ã®ããã«èŠããŸãã OpenMPãš64ãããã®äºææ§ã«é¢é£ããåé¡ãèŠã€ããããšã¯ããã®ãããªæ©èœãå¿
èŠãªäººã«ãšã£ãŠéåžžã«äŸ¿å©ã§ãã
CVScheckãšã¯å¯Ÿç
§çã«ãPVS-Studioãã¹ã¿ã³ãã¢ãã³ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãªãVisual Studioãã©ã°ã€ã³ã§ããããšã¯éåžžã«æªãã®ã§ãMSVSã®åçšããŒãžã§ã³ãå¿
èŠã§ãããExpressãšãã£ã·ã§ã³ã§ã¯åäœããŸããã ãã ããããã¯çè§£ã§ããŸããOpenMPãŸãã¯64ããããå¿
èŠãªå Žåã¯ãVisual Studio Professional以äžã®ããŒãžã§ã³ãæ¢ã«äœ¿çšããŠããå¯èœæ§ããããŸãã
ç°¡åã«èª¬æãããšãPVS-Studioã¯çŽ æŽãããããŒã«ã§ã
Florian Georgeã«ããæçš¿ïŒ2009幎ããã³ã³ãã¥ãŒã¿ãŒããžã§ã³ããã³ã³ã³ãã¥ãŒã¿ãŒç»åè§£æäŒç€Ÿã§ããã°ã©ããŒãšããŠåããŠããŸãïŒ
åºå
žïŒPVS-Studioã¢ãã©ã€ã¶ãŒãè©äŸ¡ããããã®ãªã¯ãšã¹ãã«äººãå¿çããæçŽã
PVS-Studioã«ã¯éåžžã«æéãåããŸããã
ãã§ã«å€§èŠæš¡ãªããŒã¿ããŒã¹ããããããšãã°ã/ analyzeãCppcheckãããå€ãã®ãšã©ãŒããã£ããã§ããŸãã ãŸãã倿Žãã°ãèŠããšãé »ç¹ã«æŽæ°ãããŸãã ãšã©ãŒããšã«ããããæ¬åœã«å¥œãã§ãã詳现ãªèª¬æããäŸãšãããã®ä¿®æ£æ¹æ³ã«é¢ããæšå¥šäºé
ãšãšãã«æäŸãããŠããŸãã 確ãã«ãæã
ç§ã¯åé¡ã®æå³ãšãã®ä¿®æ£æ¹æ³ãæ¬åœã«çè§£ããŠããªãããšããããŸãã 顧客ãŸãã¯èšªåè
ã ãã§ãªããåãšã©ãŒã«ã€ããŠããŒãžã®äžéšã«ç¹å¥ãªåœ¢åŒã§ã³ã¡ã³ããæžãæ©äŒãäžãããšã©ãŒã®èª¬æãæ£ããçè§£ããããã³ãŒãã§åé¡ãä¿®æ£ããã®ã«åœ¹ç«ã€ãã©ãããäŒããããšãã§ãããšäŸ¿å©ã ãšæããŸãããã§ãªãå Žåããããã¯ã³ãŒããæäŸããã¡ãã»ãŒãžã®ãšã©ãŒã®èª¬æã®èª¬æãæ¹åããã®ã«åœ¹ç«ã¡ãŸãã ãŸããããã¥ã¡ã³ãããŒãžã«ãšã©ãŒã«é¢ããã³ã¡ã³ããæ®ãããšããã§ããããã«ãªãã§ãããã
ããã©ãŒãã³ã¹ã¯è¯å¥œã§ãããŒã«ã¯ãã¹ãŠã®ã³ã¢ã䜿çšããŸããæ£çŽãªãšããã蚺æãããåé¡ããŸããŸã远å ãããã«ã€ããŠãä»åŸã®äœæ¥é床ã®äœäžãäºæ³ãããŸãã
Visual Studioãšã®çµ±åã¯åªããŠããããã¹ãŠãæ£åžžã«æ©èœããŸãã ãã¯ãªãã¯ããŠã³ãŒãã«ãžã£ã³ããããæ©èœã¯éåžžã«äŸ¿å©ã§ããããã詊çšçãšæ¯èŒããŠå®å
šçã®ç¹åŸŽçãªæ©èœãšèŠãªãããããšã¯é©ãããšã§ã¯ãããŸããã
ç§ã¯å¶ç¶ã«ã³ãŒãã®éçåæã«åºãããããã以æ¥ããªãã®ããã°ã§ããããã®ã¡ã¢ïŒã¯ãŒã«ãªã¡ã¢ïŒïŒãèªãã ã»ããAltDevBlogãRandom ASCIIãªã©ã®èšäºãèªãã çµæãç§ã¯ãã®ããŒãã«éåžžã«èå³ãæã£ãã
ç§ã¯10人ã®å°ããªäŒç€Ÿã§åããŠããŸãã æ®å¿µãªãããç§ã¯äžåžã«ãœãããŠã§ã¢ã«æ°åãã«ãæ¯æãããã«èª¬åŸããããšã¯ã§ããŸãããããã®å©ç¹ã¯å人çã«ã¯ããã«ã¯çŸããŸããã Vtuneã®ã©ã€ã»ã³ã¹ã®è³Œå
¥ãç³ãåºããšãã«ãåãããšãèµ·ãããŸããã ãã®ãããããã°ã®æçš¿ã®1ã€ã§ææ¡ãããŠããããã«ãç§ã¯è©Šçšçã«æ¥ç¶ããæåããã²ãŒã·ã§ã³ãåé¿ããŸãããåæã«éåžžã®äœ¿çšã«ã¯éåžžã«äžäŸ¿ã§ãã ããªãã¯ç¶æ³ã«çŽé¢ããŠããããã§ãïŒäŒŒããããªãã®ãããããä»ã®å€ãã®äººã
ãPVS-Studioã«èå³ãæã£ãŠããŸãïŒãããã¯åæã«é¢çœããšåæã«æ²ããã§ã-ããªããããããšã奜ããªäººãããŸãããçç±ã«ããã圌ãã¯ãã«ããŒãžã§ã³ã賌å
¥ããããšã¯ã§ããŸããã
ä»ã®ãããã§ãã·ã§ãã«ãœãªã¥ãŒã·ã§ã³ãšæ¯èŒããŠãéåžžã«ç«¶äºåã®ããäŸ¡æ Œã§åªãã補åã䜿çšã§ããŸãã ããå€ãã®äººã
ã«åããŠé£èºããŠã»ããã çŸæç¹ã§ã¯ãäž»ã«äŸ¡æ Œã®é¢ã§ãæåŸã®ãªãã¡ãŒããèŠéãæããããã ãã§ãé±ããšã®å²åŒãèŠããããšããã«Steamã§ã²ãŒã ã賌å
¥ããããšæ¥ãã®ãšåãããã«ãããããããšãªã補åã賌å
¥ãããããšãã§ããŸãã
ãã®æçŽããPVS-Studioãããã§ã©ã®ããã«èªèãããŠãããã«ã€ããŠã®æŽå¯ãäžããŠãããããšãé¡ã£ãŠããŸãã è¯ãä»äºãç¶ããŠãã ããïŒ
è»èã§é£ã¶
ãã¡ãããç§ãã¡ã¯
ãã®ãããªïŒRUïŒã®ããã«ããŸãè¯å®çãªã¬ãã¥ãŒã«åºããããŸããã PVS-Studioãè£
食ããããšããæ¬²æ±ããã§ã¯ãªãããããã«ã€ããŠã¯è©±ããŸããã§ããã ã¬ãã¥ãŒã§ç€ºãããæ¬ ç¹ã®å€ãã¯ãã§ã«è§£æ¶ãããŠããããçŸåšåãçµãã§ããŸãã ããšãã°ãPVS-StudioãNULLãã€ã³ã¿ãŒã絶察ã«ãã£ããã§ããªããšèšã£ãŠãããªã³ãŒã«ã«ã€ããŠè©±ãã®ã¯æå³ããããŸããã ããã¯äºå®ã§ã¯ãããŸããã ã¢ãã©ã€ã¶ãŒã¯ããã®ãããã¯ã«é¢ããããã€ãã®èšºæãæ¢ã«è¡šç€ºããŠããŸãã
ãŸããå€ãã®åŠå®çãªã¬ãã¥ãŒã¯PVS-Studioã®é
ãé床ã«é¢é£ããŠããŸãã ããããçç±ãçªãæ¢ãå§ãããšããååãšããŠåœŒã®ããã§ã¯ãªãã£ãããšãããããŸããã ããšãã°ããããžã§ã¯ãã¯ãããã¯ãŒã¯ãã©ã€ãã«ãããŸãã ãã®åŸãäœæ¥ã®éçšã§å€§ããªååŠçæžã¿* .iãã¡ã€ã«ãçæããããããåæã®å®è¡ã¯éåžžã«é
ããªããŸãã å¥ã®äŸã PVS-Studio.exeïŒããã³Clangããªããã»ããµïŒã¯äœåã䞊è¡ããŠå®è¡ãããŸãã å€ãã®å ŽåããŠã€ã«ã¹å¯ŸçãœãããŠã§ã¢ã¯é床äœäžãåŒãèµ·ããããããã®å®è¡å¯èœã¢ãžã¥ãŒã«ãäœåºŠãäœåºŠããã§ãã¯ããŸãã ã
PVS-Studioã®é床ãäžããããã®ãã³ã ããšããèšäºã«ç²Ÿéããããšãææ¡ããŸãã