ããªãåã«ãç§ãã¡ã®èšäºã¯ãã¹ãŠãPVS-StudioããŒã«èªäœã§ã¯ãªããããããããšã«å°å¿µãå§ããŸããã å®çžŸã®ãããããžã§ã¯ããC ++èšèªã®è€éããCïŒã§ã®ãã©ã°ã€ã³ã®äœæãã³ãã³ãã©ã€ã³ããã®PVS-Studioã®èµ·åã«ã€ããŠèª¬æããŸãã ãããããŸã第äžã«ãPVS-Studioã¯Visual Studioã䜿çšããéçºè ã察象ãšããŠããŸãã ãã®ããŒã«ã䜿ããããããããã«å€ãã®ããšãããŸããã ããããããã¯å€ãã®å Žåãèå°è£ã«ãããã®ã§ãã ç§ã¯ãã®ç¶æ³ãä¿®æ£ããPVS-Studioãã©ã°ã€ã³ã«ã€ããŠãŒãããäŒããããšã«ããŸããã Visual C ++ã䜿çšããŠããå Žåã¯ããã®èšäºã圹ç«ã¡ãŸãã
éçã³ãŒãåæãšã¯äœãããªãå¿ èŠãªã®ã
éçã³ãŒãåæã¯ãããã°ã©ã ã®ãœãŒã¹ã³ãŒãã®ãšã©ãŒãšæ¬ ç¹ãèå¥ããããã»ã¹ã§ãã éçåæã¯ãèªååãããã³ãŒãã¬ãã¥ãŒããã»ã¹ãšèŠãªãããšãã§ããŸãã å ±åã³ãŒãã¬ãã¥ãŒ ãåªããæ¹æ³è«ã ããããããã«ã¯é倧ãªæ¬ ç¹ããããŸã-é«ã³ã¹ãã§ãã æ°ããã³ãŒããã¬ãã¥ãŒããããæšå¥šäºé ãäœæããåŸã«ã³ãŒããåã¬ãã¥ãŒãããããããã«ãå®æçã«è€æ°ã®ããã°ã©ããŒãéããå¿ èŠããããŸãã
äžæ¹ã§ã¯ãå®æçã«ã³ãŒããã¬ãã¥ãŒããããšæããŸãã äžæ¹ãé«ãããŸãã ãã¬ãŒããªãã¯éçã³ãŒãåæããŒã«ã§ãã 圌ãã¯ããã°ã©ã ã®ãœãŒã¹ã³ãŒããããã¿ãªãåŠçããããã°ã©ããŒã«ã³ãŒãã®ç¹å®ã®ã»ã¯ã·ã§ã³ã«ãã£ãšæ³šæãæãããã«å§ããŠããŸãã ãã¡ãããããã°ã©ã ã¯ãããã°ã©ããŒã®ããŒã ã«ãã£ãŠå®è¡ãããã³ãŒãã®å®å šãªã¬ãã¥ãŒã«ä»£ãããã®ã§ã¯ãããŸããã ãã ããå©ç/äŸ¡æ Œæ¯ã«ãããéçåæã®äœ¿çšã¯å€ãã®äŒæ¥ã«ãšã£ãŠéåžžã«æçšãªãã©ã¯ãã£ã¹ã«ãªããŸãã
å€æ°ã®åçšããã³ç¡æã®éçã³ãŒãã¢ãã©ã€ã¶ãŒããããŸãã éçã¢ãã©ã€ã¶ãŒã®å€§èŠæš¡ãªãªã¹ãã¯ããŠã£ãããã£ã¢ã§å ¥æã§ããŸãïŒ éçã³ãŒãåæã®ããã®ããŒã«ã®ãªã¹ã ã éçã³ãŒãã¢ãã©ã€ã¶ãŒãååšããèšèªã®ãªã¹ããéåžžã«å€ããªã£ãŠããŸãïŒCãC ++ãCïŒãJavaãAdaãFortranãPerlãRubyãªã©ïŒã åœç¶ã PVS-Studioã¢ãã©ã€ã¶ãŒã«ã€ããŠèª¬æããŸãã
éç解æã®äž»ãªå©ç¹ã¯ãããã°ã©ã ã®æ¬ é¥ããªããã³ã¹ããå€§å¹ ã«åæžã§ããããšã§ãã ãšã©ãŒãæ©ãç¹å®ããããšãä¿®æ£ã®ã³ã¹ããäœããªããŸãã ãããã£ãŠãMcConnellã®èæžãPerfect Codeãã«èšèŒãããŠããããŒã¿ã«ãããšããã¹ã段éã§ã®ééãã®ä¿®æ£ã«ã¯ãèšèšïŒå·çïŒæ®µéããã10åã®è²»çšãããããŸãã
å³1.æ¬ é¥ã®å°å ¥ãšæ€åºã®æéã«å¿ããæ¬ é¥ä¿®æ£ã®å¹³åã³ã¹ãïŒè¡šã®ããŒã¿ã¯S. McConnell "Perfect Code"ã«ããæ¬ããåãããŠããŸãïŒã ç»åãã¯ãªãã¯ããŠæ¡å€§ããŸãã
éçåæããŒã«ã䜿çšãããšãèšèšæ®µéã§å€æ°ã®ãšã©ãŒãç¹å®ã§ããããããããžã§ã¯ãå šäœã®éçºã³ã¹ããå€§å¹ ã«åæžã§ããŸãã ããšãã°ãPVS-Studioéçã³ãŒãã¢ãã©ã€ã¶ãŒã¯ã³ã³ãã€ã«çŽåŸã«ããã¯ã°ã©ãŠã³ãã§èµ·åã§ããæœåšçãªãšã©ãŒãèŠã€ãã£ãå Žåã¯ããã°ã©ããŒã«éç¥ããŸãã ãã®ã¢ãŒãã®è©³çŽ°ã«ã€ããŠã¯ã以äžã§èª¬æããŸãã
ã³ãŒãã¬ãã¥ãŒãšéçåæã®ãããã¯ã«ã€ããŠã¯ãèšäºã®æåŸã«åŒçšãããŠããèšäº[ 1ã2ã3 ]ã§è©³çŽ°ã«èª¬æãããŠããŸãã
PVS-Studio Static Code Analyzer
PVS-Studioã¯ãCãC ++ãC ++ 11ãC ++ / CXã®ã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã®ãšã©ãŒãæ€åºããéçã¢ãã©ã€ã¶ãŒã§ãã äž»ã«Visual Studioã®ãŠãŒã¶ãŒã察象ãšããŠããŸãïŒä»ã®ç°å¢ã®ãµããŒãã«ã€ããŠã¯ã補åããŒãžãåç §ããŠãã ãã ïŒã ã¢ãã©ã€ã¶ãŒã¯VS2005-VS2012ãšå®å šã«çµ±åãããŸãã ãŸããªãVS2013ã®ãµããŒããè¿œå ããŸãã ãã®çµæããŠãŒã¶ãŒã¯ã¡ã€ã³ã¡ãã¥ãŒã®è¿œå é ç®ãPVS-Studioããšèšºæã¡ãã»ãŒãžãæäœããããã®ãŠã£ã³ããŠãåãåããŸãïŒå³2ãåç §ïŒã
å³2. Visual Studioãžã®çµ±åäžã«PVS-Studioã¢ãã©ã€ã¶ãŒã«ãã£ãŠè¿œå ãããäž»ãªèŠçŽ ã ç»åãã¯ãªãã¯ããŠæ¡å€§ããŸãã
åæèšå®
åæè£ çœ®ã¯ãèšçœ®åŸããã«æäœã§ããç¶æ ã«ãªããŸãã ã»ãšãã©ã®å Žåãæåã®å®è¡ãå®äºããããã«äœãæ§æããå¿ èŠã¯ãããŸããã æåã«å¿ èŠãªèšå®ã¯ããµãŒãããŒãã£ã®ã©ã€ãã©ãªãé€å€ããããšã ãã§ãã jpegã©ã€ãã©ãªãœãŒã¹ãã¡ã€ã«ã®å 容ã¯ãŸã ç·šéããŸããã ãããã£ãŠã確èªããå¿ èŠã¯ãããŸããã ããã«ãåæãããã©ã«ããŒãé€å€ãããšãåææéãççž®ãããŸãã åæããé€å€ããããã£ã¬ã¯ããªã¯ãããã§èšå®ãããŸãïŒãªãã·ã§ã³->ãã¡ã€ã«ããã§ãã¯ããªã-> PathMasksïŒå³3ãåç §ïŒã
å³3.ã¢ãã©ã€ã¶ãŒããã§ãã¯ããªããã£ã¬ã¯ããªãŒã®ãªã¹ãã®ç·šéã ç»åãã¯ãªãã¯ããŠæ¡å€§ããŸãã
æå®ãããååã®ããããããã¡ã€ã«ã®ãã«ãã¹ã«ããå Žåãåæã¯å®è¡ãããŸããã ããã©ã«ãã§ã¯ãäžéšã®ãã£ã¬ã¯ããªã®ååã¯ãã§ã«ãªã¹ãã«å«ãŸããŠããŸãã ãã ãããããžã§ã¯ãã§ã¯ãZLibã©ã€ãã©ãªãå«ããã©ã«ãã¯ãzlibãã§ã¯ãªãããzip_libããªã©ãšåŒã°ããå ŽåããããŸãã ãããã£ãŠããã®ãªã¹ããç·šéããå¿ èŠããããŸãã ç·šéãéå§ããã«ã¯ã3ã€ã®ç¹ããããã¿ã³ãã¯ãªãã¯ããŸãã
PathMasksãªã¹ãã®æå¹ãªãã¹ã¯ã®äŸïŒ
- cïŒ\ Libs \-ãã®ãã©ã«ããŒãšãã®ãµããã©ã«ããŒã«ãããã¹ãŠã®ãããžã§ã¯ããã¡ã€ã«ã¯é€å€ãããŸãã
- \ Libs \ãŸãã¯* \ Libs \ *-Libsãµããã©ã«ããŒãå«ããã¹ãæã€ãã£ã¬ã¯ããªã«ãããã¹ãŠã®ãã¡ã€ã«ãé€å€ãããŸãã ã*ãæåãæå®ãããŠããªãå Žåã§ãããããã¯èªåçã«è¿œå ããããããäž¡æ¹ã®èšé²ãªãã·ã§ã³ã¯åãã§ãã
- LibsãŸãã¯* Libs *-ãã¹ãŠã®ãã¡ã€ã«ãé€å€ãããŸãããã¹ã«ã¯ãååãŸãã¯ååã®æçãšããŠãLibsããæã€ãµããã©ã«ããŒãå«ãŸããŸãã ãŸãããã®å Žåãååã«Libãå«ããã¡ã€ã«ãããšãã°cïŒ\ project \ mylibs.cppã¯é€å€ãããŸãã æ··ä¹±ãé¿ããããã«ãåžžã«ã¹ã©ãã·ã¥ã䜿çšããããšããå§ãããŸãã
ãããžã§ã¯ãæ€èšŒ
åæèšå®ãå®äºãããšããããžã§ã¯ãã®ãã§ãã¯ãéå§ã§ããŸãã ã»ãšãã©ã®å Žåããœãªã¥ãŒã·ã§ã³å šäœãããã«ç¢ºèªã§ããŸãã ãããè¡ãã«ã¯ãPVS-Studio-> Check-> Solutionã¡ãã¥ãŒé ç®ãéžæããŸãïŒå³4ãåç §ïŒã
å³4. PVS-Studioã¢ãã©ã€ã¶ãŒã䜿çšãããœãªã¥ãŒã·ã§ã³ã®æ€èšŒã
確èªã«åé¡ãããå Žåã¯ãåœç€Ÿã®Webãµã€ãã®ã 確èªã§ããŸãããïŒ ãã»ã¯ã·ã§ã³ãåç §ããããšããå§ãããŸãã ãããã¯ç¡ç¥ãªããã©ã°ãå·®ã蟌ãŸããŠããããšã確èªãããã³ã³ã»ã³ãã§ã¯ãããŸããã ãã®ã»ã¯ã·ã§ã³ã§ã¯ããŠãŒã¶ãŒãç§ãã¡ã«é£çµ¡ããå žåçãªç¶æ³ã«ã€ããŠèª¬æããã¢ã¯ã·ã§ã³ã®æšå¥šãªãã·ã§ã³ã瀺ããŸãã
蚺æã¡ãã»ãŒãžã®ãªã¹ããæäœãã
ãã§ãã¯åŸããã¹ãŠã®èšºæã¡ãã»ãŒãžãç¹å¥ãªãŠã£ã³ããŠã«è¡šç€ºãããŸãã ãŠã£ã³ããŠã«ã¯å€ãã®ã³ã³ãããŒã«ããããŸãã ãããã¯ãã¹ãŠããŠãŒã¶ãŒã«ãšã£ãŠé¢å¿ã®ãã蚺æã¡ãã»ãŒãžãæ£ç¢ºã«è¡šç€ºããã®ã«åœ¹ç«ã¡ãŸãã ãã ããæåã¯ãŠã£ã³ããŠãè€éã«èŠãããããããŸããã ãã¹ãŠã®ã³ã³ãããŒã«ãèŠãŠã¿ãŸãããïŒå³5ãåç §ïŒã
å³5.蚺æã¡ãã»ãŒãžã衚瀺ããããŠã£ã³ããŠã ç»åãã¯ãªãã¯ããŠæ¡å€§ããŸãã
- å®éã«ã¯PVS-StudioãŠã£ã³ããŠã
- ãã¿ã³ã«ã¯ããåé¡ãçºçããŸããããšããã¡ãã»ãŒãžãå«ãŸããŠããŸãã ããšãã°ããã¡ã€ã«ã®1ã€ãååŠçããããšã¯ã§ããŸããã
- ããŸããŸãªã¬ãã«ã®ã¢ã©ãŒããå«ããã¿ã³ã çŸåšã3ã€ã®èšºæã¬ãã«ããã¹ãŠå«ãŸããŠããŸãã åæã«ã第1ã¬ãã«ã®132åã®èŠåã第2ã¬ãã«ã®235åã®èŠåãããã³ç¬¬3ã¬ãã«ã®390åã®èŠåããŠã£ã³ããŠã«è¡šç€ºãããŸãã ã¡ãã»ãŒãžã¬ãã«ã¯ãçªå·ä»ãã®äžè§åœ¢ã®åœ¢ã§ããããã®åã«è¡šç€ºãããŸãã
- 蚺æã«ãŒã«ã®ã¢ã¯ãã£ããªã»ããã GA-äžè¬èšºæãOP-æé©åã64-64ããã蚺æãMP-OpenMPé¢é£ã®ãšã©ãŒãCS-ãŠãŒã¶ãŒèšºæã ãã®ãŠã£ã³ããŠã«ã¯ãGAããã³MPã«é¢é£ããèŠåã衚瀺ãããŸãã
- falseãšããŒã¯ãããã¡ãã»ãŒãžã®è¡šç€ºãæå¹/ç¡å¹ã«ããŸãã 誀ã£ãã¢ã©ãŒãããªã³ã«ãªããŸããã ãã®æ©èœã®è©³çŽ°ã«ã€ããŠã¯ãããã¥ã¡ã³ãïŒ èª€èŠåã®æå¶ãåç §ããŠãã ãã ã
- 蚺æã¡ãã»ãŒãžãæ€çŽ¢ããŸãã
- ã¯ã€ãã¯ãã£ã«ã¿ãŒã ããšãã°ãã³ãŒãV501ãæã¡ãXYZãããžã§ã¯ãã«ããã¡ãã»ãŒãžã®ã¿ããªã¹ãã«æ®ãããšãã§ããŸãã
- å/次ã®ã¡ãã»ãŒãžã«ç§»åããŸãã ããã«ããã察å¿ãããã¡ã€ã«ãéããã«ãŒãœã«ãæœåšçãªãšã©ãŒã®ããè¡ã«çœ®ãããŸãã ãŸããããã«ã¯ãªãã¯ããŠããªã¹ããã蚺æããã€ã§ãéžæã§ããŸãã
- èšå®ãŠã£ã³ããŠãéããŸãã
- ã¢ã¹ã¿ãªã¹ã¯ 圌女ã«ã¯ç¹å¥ãªç®çã¯ãããŸããã ãŠãŒã¶ãŒã¯èªåã®å€æã§è§£éã§ããŸãã äŸãã°ã圌ã¯ããã«æ³šææ·±ãåæã®ããã«æãèå³æ·±ãèŠåãææãããããããŸããã ããšãã°ãThunderbirdãOutlookãªã©ã®é»åã¡ãŒã«ããã°ã©ã ã§ãæåã«ã¢ã¹ã¿ãªã¹ã¯ãä»ããããšã§ãã
- ã¬ãã« ã èŠåãé©çšãããã¬ãã«ã 1ã¬ãã«-æãäžå¯©ãªå Žæã ã¬ãã«3-ã³ãŒãã®èª€æ€ç¥ãŸãã¯è»œåŸ®ãªäžæ£ç¢ºæ§ã
- ID äžæã®ã¡ãã»ãŒãžçªå·ã 倧ããªãªã¹ããæ±ããšãã«äŸ¿å©ã§ãã ããšãã°ãç¹å®ã®çªå·ã®ã¡ãã»ãŒãžã«ç§»åã§ããŸãïŒ ã³ã³ããã¹ãã¡ãã¥ãŒã®[ IDãžã®ç§»å... ]é ç®ãåç §ïŒã
- ã³ãŒã ã¡ãã»ãŒãžã³ãŒã ããŠã¹ã§ã¯ãªãã¯ãããšãèŠåã®èª¬æãèšèŒãããããŒãžãéããŸãã
- ã¡ãã»ãŒãž 蚺æã¡ãã»ãŒãžã®ããã¹ãã
- ãããžã§ã¯ã ãããžã§ã¯ãåïŒã³ã³ããã¹ãã¡ãã¥ãŒã䜿çšããŠãã®åãç¡å¹ã«ã§ããŸãïŒã
- ãã¡ã€ã« ãã¡ã€ã«åã
- è¡ è¡çªå·ã éèŠïŒ ããã€ãã®è¡ã®åŸãã»ãã³ãã³ããã«ããããããšã«æ³šæããŠãã ããã äŸïŒã123ïŒ...ïŒãã ãã®çªå·ãã¯ãªãã¯ãããšããã®ã¡ãã»ãŒãžã«é¢é£ãããã¹ãŠã®ã³ãŒãè¡ã®ãªã¹ãã衚瀺ãããŸãã ãã®å Žåããªã¹ãå ã®åè¡ã«ç§»åã§ããŸãã
- ãFalse AlarmããããŒã¯ããŸãã èŠåãåœã§ããããšã瀺ãããŒã¯ã N 5ãã¿ã³ãæŒãããå Žåã«ã®ã¿ãã³ãŒãã«èª€ã£ãèŠåã衚瀺ãããããšã«æ³šæããŠãã ããïŒå³5ãåç §ïŒã
ã³ã³ããã¹ãã¡ãã¥ãŒ
ãããã£ãŠãã¡ãã»ãŒãžãããã«ã¯ãªãã¯ãããšãç®çã®ããã¹ãã®æçã«ç§»åããŸãã ããŠã¹ã®å³ãã¿ã³ãæŒããšãã³ã³ããã¹ãã¡ãã¥ãŒãéããŸãã
ã¡ãã¥ãŒã¯éåžžã«ã·ã³ãã«ã§ãåé ç®ã®èª¬æã§èšäºããªãŒããŒããŒãããªãã§ãã ããã äžæãªç¹ãããå Žåã¯ãããã¥ã¡ã³ããã芧ãã ããã
ãã ããéåžžã«äŸ¿å©ãªæ©èœã«ã€ããŠèª¬æããŸãã
èšå®ã§ãé€å€ãããã©ã«ããŒ/ãã¡ã€ã«ãè¿œå ã§ããããšã«æ³šæããŠãã ããïŒå³2ãåç §ïŒã ãã®ãããäœããè¿œå ããã®ã¯æã£ãããããã£ãšç°¡åã§ãïŒ
ããã¡ã€ã«ããã§ãã¯ããããã¹ãŠã®ã¡ãã»ãŒãžãé衚瀺ã«ããªãããšããé ç®ã«æ³šæããŠãã ããã ã¯ãªãã¯ãããšãäŸå€ã«è¿œå ã§ãããã¹ã®ãªã¹ãã衚瀺ãããŸãïŒå³6ãåç §ïŒã
å³6.ã¹ãã£ã³ãããã¡ã€ã«ãé€å€ããŸãã ç»åãã¯ãªãã¯ããŠæ¡å€§ããŸãã
å¥ã®ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªã®ãããããéžæã§ããŸãã ãã®å³ã¯ããã©ã«ããŒãEïŒ\ [Build] \ VirualDub \ src \ testããéžæãããŠããããšã瀺ããŠããŸãã ããã¯ããã®ãã©ã«ããŒãšãã¹ãŠã®ãµããã©ã«ããŒå ã®ãã¹ãŠã®ãã¡ã€ã«ãåæããé€å€ãããããšãæå³ããŸãã ããã«ããããã®ãã¡ã€ã«ã«é¢é£ãããã¹ãŠã®ã¡ãã»ãŒãžã¯ãªã¹ãããããã«æ¶ããŸãã ãšãŠãå¿«é©ã§ãã ãã¹ãïŒãã©ã«ããŒãtestãïŒã«é¢é£ãããã¹ãŠã®ã¡ãã»ãŒãžãåé€ããããã«ãåæãåéããå¿ èŠã¯ãããŸããã
å¢ååæã¢ãŒã
æãéèŠãªæ©èœã®1ã€ã§ããã€ã³ã¯ãªã¡ã³ã¿ã«ã³ãŒãåæã«ã€ããŠè©±ããªããšãPVS-Studioã®æŠèŠã¯äžå®å šã«ãªããŸãã
ãšã©ãŒãæ©ãçºèŠãããã»ã©ãä¿®æ£ã®ã³ã¹ãã¯å®ããªããŸãã ããã°ã©ã ã®ç·šéæžã¿ããã¹ãã®ãšã©ãŒãããã«åŒ·èª¿ããããšãçæ³çã§ãã ãã ããæè¡çã«é£ããããªãœãŒã¹ã倧éã«æ¶è²»ããŸãã ãããã£ãŠãPVS-Studioã¯ãä¿®æ£ãããã³ãŒããæ£åžžã«ã³ã³ãã€ã«ãããæç¹ã§ããã¯ã°ã©ãŠã³ãã§èµ·åããŸãã ãããã£ãŠããšã©ãŒã¯å€æŽãããã°ããã®ã³ãŒãã§æ€çŽ¢ãããŸãã åæãè¡ãããŠãããšããäºå®ã¯ãã·ã¹ãã ãã¬ã€ã®ã¢ã€ã³ã³ã«ãã£ãŠå€æã§ããŸãã
ãšã©ãŒãèŠã€ãããšãå±éºãèŠåãããããã¢ãããŠã£ã³ããŠã衚瀺ãããŸãïŒå³7ãåç §ïŒã
å³7.ç·šéããããã¡ã€ã«ã«çãããå ŽæãèŠã€ãã£ããšãããããã¢ããã¡ãã»ãŒãžã
ãã®ãããã¢ããã¡ãã»ãŒãžãã¯ãªãã¯ãããšãPVS-StudioãŠã£ã³ããŠãéãïŒå³2ãåç §ïŒãçãããã³ãŒããã©ã°ã¡ã³ãã調ã¹ãããšãã§ããŸãã
å®éããã®ã¢ãŒãã説æãããããããã®ã¢ãŒãã䜿çšããæ¹ãç°¡åã§ãã åãšåãããã«ã³ãŒããæžããŸãã å¿ èŠã«å¿ããŠãã¢ãã©ã€ã¶ãŒãéªéããŸãã è©ŠããŠã¿ãŠãã ããïŒ
ç§ãã¡ã¯åžžã«ãã®ã¢ãŒãã䜿çšããŠããŸãã ã¯ããã³ãŒãã£ã³ã°ãšã©ãŒãçºçããããšããããŸãã ãŸããããããããã«ä¿®æ£ããæ©èœã«ãããæ¬ é¥ãæ€åºããæéãšãããã°ã©ã ãèšç»ã©ããã«åäœããªãçç±ãç解ããããšããæéãå€§å¹ ã«ççž®ãããŸãã ãããã°ã«15ã20åè²»ãããŠãããã€ã³ããã¯ã¹ã®ã¿ã€ããã¹ãèŠã€ããã®ã¯æ®å¿µã§ãã PVS-Studioãã³ãŒãã«è¡šç€ºãããçŽåŸã«PVS-Studioã§ãšã©ãŒãæ€åºããæåŸã®ã±ãŒã¹ã®1ã€ã次ã«ç€ºããŸãã
if (in[0] == '\\' && in[1] == '.' && in[1] == '\\') { in += 2; continue; }
ãããããããã¯ãã¡ããè±ã§ãã PVS-Studioã¢ãã©ã€ã¶ãŒã¯éåžžã«äŸ¿å©ãªå ŽåããããŸãã ã¢ãã©ã€ã¶ãŒã«é¢ããã¬ãã¥ãŒã®1ã€ã¯ãã éçã¢ãã©ã€ã¶ãŒã®äœ¿çšäŸ ãã§ãã ããã¹ãã¯ããªãã«èããããŸãã
ãŸãšããŸãã ã€ã³ã¯ãªã¡ã³ã¿ã«åæã¯ãééããªãè©ŠããŠã¿ãã¹ããã®ã§ãã æ°ããã³ãŒãã§ããã€ãã®ééããèŠã€ãããããã«åœŒãæããã§ãããã
PVS-Studioã®æ©èœ
ç°¡åã«ããŸãããã PVS-Studioã§å©çšå¯èœãªãã¹ãŠã®èšºæãç°¡æœã«èª¬æããããšã¯äžå¯èœã§ãã 蚺æã®å®å šãªãªã¹ããšãã®è©³çŽ°ãªèª¬æã¯ãããã¥ã¡ã³ãã蚺æããããšã©ãŒã®èª¬æãã«èšèŒãããŠããŸãã 蚺æãã¿ã€ãããšã«ã°ã«ãŒãåããããŒãã«ã«éå®ããŸãã äžéšã®èšºæã¯ãè€æ°ã®ã°ã«ãŒãã«å«ãŸããŠããŸãã å®éãåå²ã¯éåžžã«arbitraryæçã§ãã ããšãã°ãã¿ã€ããã¹ã«ãããåæåãããŠããªãã¡ã¢ãªã䜿çšãããå¯èœæ§ããããŸãã ããã©ããããããã€ãã®ãšã©ãŒã¯ããŒãã«å ã®å ŽæãèŠã€ããããŸããã§ãã;ãããã¯ããŸãã«ãå ·äœçã§ãã ããã§ããè¡šå šäœãèŠããšãéçã³ãŒãã¢ãã©ã€ã¶ãŒã®æ©èœãããããŸãïŒå³8ãåç §ïŒã
å³8. PVS-Studioã®æ©èœã ç»åãã¯ãªãã¯ããŠæ¡å€§ããŸãã
ã芧ã®ãšãããã¿ã€ããã¹ã«ããçºçãããšã©ãŒã®æ€çŽ¢ãã³ããŒããŒã¹ããªã©ã®é åã§ãã¢ãã©ã€ã¶ã¯å¯èœãªéãé¡åšåããŸãã ã³ãŒãã»ãã¥ãªãã£ã«é¢é£ããåé¡ã蚺æããŸãã
ãããå®éã«ã©ã®ããã«æ©èœãããã«ã€ããŠã¯ããšã©ãŒããŒã¿ããŒã¹ã調ã¹ããšããããŸã ã ãã®ããŒã¿ããŒã¹ã§ã¯ãããŸããŸãªãªãŒãã³ãœãŒã¹ãããžã§ã¯ãããã§ãã¯ããããšã§çºèŠãããã¹ãŠã®ãšã©ãŒãåéããŸãã
ãããã«
ãã¡ãããããã§ã¯æ¥œåšã«ã€ããŠãã¹ãŠã説æããŸããã§ããã ãã¹ãŠãäŒãããšãèšäºã¯ããã¥ã¡ã³ãã«å€ãããŸãã ç®æšã¯ãVisual Studioç°å¢å ã§ããŒã«ã䜿çšããããšãããã«ç°¡åãã瀺ãããšã§ããã ä»ã®ç°å¢ãšåäœã¢ãŒãã«ã€ããŠã¯ãåœç€Ÿã®Webãµã€ãã«ããããã¥ã¡ã³ããšä»ã®èšäºã§èªãããšãã§ããŸãã ã¡ãªã¿ã«ãããã°ã©ããŒã«ãšã£ãŠã¯èå³æ·±ãããšããããããããŸãã æ©ãåã£ãŠãã ããã
ãã©ãã«ã®ãªãã³ãŒãããç¥ãããPVS-Studioãã楜ãã¿ãã ããã ã質åãããå Žåã¯ããã€ã§ããæ°è»œã«ãåãåãããã ããã ç§ãã¡ã«æžããŠãã ãã ã
è¿œå ã®ãªãœãŒã¹ïŒ
- ã³ãŒãã¬ãã¥ãŒ
- éçã³ãŒãåæ ã
- éçã³ãŒãåæããŒã« ã
- éç解æã«é¢ããç¥è©±ã 2çªç®ã®ç¥è©±ã¯ãããã®éçºè ãæããªééããç¯ããªããšããããšã§ãã
- PVS-StudioãããŠã³ããŒãããŠè©ŠããŠãã ããã
- ãšã©ãŒãã»ãšãã©ãªãã®ã¯ãªãã§ããïŒ ã¬ãªãã«ã¹ãã€ãšéçã³ãŒãåæ ã
- ããŒã ã®PVS-Studioã¢ãã©ã€ã¶ãŒã®äŸ¡æ Œãšãã®è³Œå ¥æ¹æ³ã«ã€ããŠè©±ãåããŸãïŒ PVS-Studioãè³Œå ¥ããŸãã
- èšäºãèªãã åŸã«ããèããã質åãžã®åçã
æŽæ°
èšäºã®æŽæ°çïŒ PVS-Studio for Visual C ++ ã