C рдФрд░ C ++ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдореЗрдВ PVS-Studio рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ, рдЖрдк рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдореНрдмреЗрдбреЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреЗрдХ рдХреИрд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред PVS-Studio рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрдХрд▓рдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╡рд┐рдВрдбреЛ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдВрдкрд╛рдЗрд▓рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:


рд╕реНрдерд╛рдкрдирд╛


рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдЖрдк рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд, рдЖрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдпрд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреИрдХреЗрдЬ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдбреЗрдмрд┐рдпрди рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:

wget -q -O - https://files.viva64.com/etc/pubkey.txt | sudo apt-key add - sudo wget -O /etc/apt/sources.list.d/viva64.list \ https://files.viva64.com/etc/viva64.list sudo apt update sudo apt install pvs-studio 

рдпрд╛

 sudo gdebi pvs-studio-VERSION.deb 

MacOS рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЕрджреНрдпрддрди Homebrew рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 brew install viva64/pvs-studio/pvs-studio brew upgrade pvs-studio 

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдкреИрдХреЗрдЬ рдХреЛ рдбреАрдПрдордЬреА рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЕрдирдкреИрдХ рдХрд░рдирд╛ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдЖрдк рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреГрд╖реНрда рдкрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреБрдВрдЬреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ " рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ "ред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреБрдВрдЬреА рджрд░реНрдЬ рдХрд░реЗрдВред рдЖрдк рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ " рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреИрд╕реЗ рджрд░реНрдЬ рдХрд░реЗрдВ, рдФрд░ рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ ред"

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рддреНрдпрд╛рдкрди


рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рддреНрдпрд╛рдкрди рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред

рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд▓реЗрдЦ " рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдкрд░рд┐рдЪрдп " рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЪреВрдВрдХрд┐ рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рддрд╣рдд рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрдХрд▓рдХ рдХрд╛ рдирд╛рдо рдЧреИрд░-рдорд╛рдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, -compiler рдпрд╛ -c рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ :

 pvs-studio-analyzer analyze -c MyCompiler 

рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд░реЗрдВ рдЬрдм рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрдХрд▓рдХ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЬрдм рддреНрд░реБрдЯрд┐ "рдХреЛрдИ рд╕рдВрдХрд▓рди рдЗрдХрд╛рдЗрдпрд╛рдВ рдирд╣реАрдВ рдорд┐рд▓реА" рдЬрд╛рд░реА рдХреА рдЧрдИ рд╣реИред

рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп, рдЪреВрдВрдХрд┐ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдХ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рдЕрд╕реЗрдВрдмрд▓реА рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде - рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреИрд░рд╛рдореАрдЯрд░, рд╕рд╛рде рд╣реА рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ ( -рдкреНрд░реЛрд╕реЗрд╕рд░ ) рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: win32, x64, linux32, linux64, macos, armред

рд╕рдорд░реНрдерд┐рдд рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░: gcc, clang, keilред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд▓рд┐рдирдХреНрд╕ linux64 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ gcc рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдирд┐рдЧрд░рд╛рдиреА рдирд┐рдЧрд░рд╛рдиреА рдореЛрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, " рд╕реА рдФрд░ рд╕реА ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдпреВрдЖрдИ " рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЪрд▓рд╛рдПрдВ, рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдирд┐рдЧрд░рд╛рдиреА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдХрд░рдг рдореЗрдиреВ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ... рдПрдХ рд╕рдВрд╡рд╛рдж рдЦреБрд▓рддрд╛ рд╣реИ:


" рдкреНрд░рд╛рд░рдВрдн рдирд┐рдЧрд░рд╛рдиреА " рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдмрд┐рд▓реНрдб рдХреЛ рдЪрд▓рд╛рдПрдВред рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░реАрди рдХреЗ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ " рд╕реНрдЯреЙрдк рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ " рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:


рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдХреЛ " C рдФрд░ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ UI " рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрд┐рддрд╛ CLMonitor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдХрдорд╛рдВрдб рд╕реЗ рдирд┐рдЧрд░рд╛рдиреА рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 CLMonitor.exe monitor 

рдЕрд╕реЗрдВрдмрд▓реА рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 CLMonitor.exe analyze -l "<path>\out.plog" 

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ -l рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрдЪрд╛рдПрдЧрд╛ред

рдкреНрд░рд▓реЗрдЦрди рдЕрдиреБрднрд╛рдЧ " рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╕рдВрдХрд▓рди рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА " рднреА рджреЗрдЦреЗрдВред

рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреЙрд▓реА-рдХрдирд╡рд░реНрдЯрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд░реНрдерд┐рдд рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде HTML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir 

рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ " рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд " рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдПрдХ PlogConverter рдЙрдкрдпреЛрдЧрд┐рддрд╛ рднреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:

 PlogConverter.exe <path>\out.plog --renderTypes= FullHtml --analyzer=GA:1,2 

рдпрд╛

 PlogConverter.exe D:\Projct\out.plog -t FullHtml -a GA:1,2 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, plog рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдореЗрдиреВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ " C рдФрд░ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ UI " рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ-> PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рд▓реЙрдЧ рдЦреЛрд▓реЗрдВ ...

рдПрдХ рдЙрджрд╛рд╣рд░рдг:


рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реЗ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдПрдХ рд╕рдорд░реНрдерд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

MISRA рдорд╛рдирдХ


рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реАрдбрдмреНрд▓реНрдпреВрдИ рдФрд░ рдПрд╕рдИрдЖрдИ рд╕реАрдИрдЖрд░рдЯреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд▓рд░реНрдЯ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕реНрдереИрддрд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рдкрд░реАрдХреНрд╖рдг ( рдПрд╕рдПрдПрд╕рдЯреА ) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдереЛрдбрд╝реА рдЕрд▓рдЧ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд MISRA рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг MISRA C рдФрд░ MISRA C ++ рд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЗ рднрд╛рдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдирд┐рджрд╛рди рдХреА рд╕реВрдЪреА рдХреЛ рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред

MISRA рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрдм рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдореНрдмреЗрдбреЗрдб рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЕрдХреНрд╕рд░ рдЕрдиреБрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирдХ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрджрд┐ рдХреЛрдб рдореВрд▓ рд░реВрдк рд╕реЗ MISRA рдЕрдиреБрдкрд╛рд▓рди рдХреА рдЙрдореНрдореАрдж рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЪреЗрдХ рдХреЗ рджреМрд░рд╛рди рдмрд╣реБрдд рд╕рд╛рд░реА рдЭреВрдареА рдФрд░ рдмреЗрдХрд╛рд░ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЬрд╛рдПрдЧреАред рдЗрд╕рд▓рд┐рдП, MISRA рдирд┐рдпрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИрдВред

рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд MISRA рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ -a рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪрд▓рд╛рдиреЗ рдФрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдореЛрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдмрд┐рдЯ рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ:

 -a [MODE], --analysis-mode [MODE] MODE defines the type of warnings: 1 - 64-bit errors; 2 - reserved; 4 - General Analysis; 8 - Micro-optimizations; 16 - Customers Specific Requests; 32 - MISRA. Modes can be combined by adding the values Default: 4 

рд▓реЙрдиреНрдЪ рдЙрджрд╛рд╣рд░рдг (GA рдФрд░ MISRA рдирд┐рджрд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ):

 pvs-studio-analyzer analyze -a 36 -o /path/report.log 

рдкреЛрдЧрд▓-рдХрдиреНрд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп , рдЖрдкрдХреЛ рдпрд╣ рднреА рд╕рдВрдХреЗрдд рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ MISRA рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

 plog-converter -a MISRA:1,2,3 -m misra .... 

рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд, рдЖрдк " C рдФрд░ C ++ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ UI " рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рдВрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


MISRA рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг " PVS-Studio: MISRA C рдФрд░ MISRA C ++ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдорд╛рдирдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди " рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреАред рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ:




рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдпреВрд░реА рдорд┐рдирд╛рдПрд╡ред рдПрдВрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕реА рдФрд░ рд╕реА ++ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреЗрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

Source: https://habr.com/ru/post/hi463335/


All Articles