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ã®é床ãäžããããã®ãã³ã ããšããèšäºã«ç²Ÿéããããšãææ¡ããŸãã