рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ C++ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛ PVS-Studio рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓рд╛рдИ рдЪрд┐рдиреНрдиреЗ Linux

рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ C++ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛ PVS-Studio рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓рд╛рдИ рдЪрд┐рдиреНрдиреЗ LinuxPVS-Studio рд▓реЗ C, C++, C#, рд░ Java рдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред Windows, Linux ╨╕ macOSрдпрд╕ рд▓реЗрдЦрд▓реЗ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ C рд░ C++ рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдХреЛрдбрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЫрд▓рдлрд▓ рдЧрд░реНрдиреЗрдЫред Linux.

рд╕реЗрдЯрд┐рдЩ

PVS-Studio рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН Linux рд╡рд┐рддрд░рдг рдкреНрд░рдХрд╛рд░рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ рдпреЛ рдЧрд░реНрдиреЗ рдзреЗрд░реИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреНред рд╕рдмреИрднрдиреНрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░ рдордирдкрд░реНрдиреЗ рд╡рд┐рдзрд┐ рднрдиреЗрдХреЛ рднрдгреНрдбрд╛рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛ, рдХрд┐рдирдХрд┐ рдпрд╕рд▓реЗ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдЬрд╛рд░реА рд╣реБрдБрджрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рджреЛрд╕реНрд░реЛ рд╡рд┐рдХрд▓реНрдк рднрдиреЗрдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛ, рдЬреБрди рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпрд╣рд╛рдБ.

рд╕реНрдерд╛рдкрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЪрд▓рд╛рдЙрдиреБ рдкрд░реНрдиреЗ рдЖрджреЗрд╢рд╣рд░реВ рд╡рд┐рддрд░рдгрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред Linux, рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ Debian, рднрдгреНрдбрд╛рд░рдмрд╛рдЯ рд╕реНрдерд╛рдкрдирд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

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

рд╕реНрдерд╛рдкрдирд╛ рдкреНрдпрд╛рдХреЗрдЬрдмрд╛рдЯ PVS-рд╕реНрдЯреБрдбрд┐рдпреЛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ gdebi рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

sudo gdebi pvs-studio-VERSION.deb

рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЦрдгреНрдб "рдорд╛ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫредPVS-Studio рд╕реНрдерд╛рдкрдирд╛ рд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджреИ Linux┬╗ рдХрд╛рдЧрдЬрд╛рддред рддреНрдпрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдзрд╛рд░рд┐рдд рдирднрдПрдХрд╛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдкрдирд┐ рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Debian.

рд╕реНрдерд╛рдкрдирд╛ рдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдбрд╛рдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐, рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ

pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]

рдХрд╣рд╛рдБ NAME ╨╕ KEY - рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рджрд░реНрддрд╛ рднрдПрдХреЛ рдирд╛рдо рд░ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдХреБрдЮреНрдЬреАред рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╡рд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдорд╛рд░реНрдЧ рд╕реЗрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрд╣рд╛рдБ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗрдЫред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдпреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ ~/.config/PVS-Studio/.

рддрдкрд╛рдИрдВрд▓реЗ рдкреГрд╖реНрдардорд╛ рдкрд░реАрдХреНрд╖рдг рдХреБрдЮреНрдЬреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ "рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ PVS-рд╕реНрдЯреБрдбрд┐рдпреЛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН"ред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдЬрд╛рдБрдЪ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рдЧрд░реНрди рджреБрдИ рдореБрдЦреНрдп рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН:

  1. рд╕рдВрдХрд▓рди рдирд┐рдЧрд░рд╛рдиреА;
  2. рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реАрдмрд╛рдЯ рд╕реАрдзрд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред

рдкрд╣рд┐рд▓реЗ рдкрд╣рд┐рд▓реЛ рд╡рд┐рдзрд┐ рд╣реЗрд░реМрдВред рдирд┐рдЧрд░рд╛рдиреА рд╕реБрд░реБ рдЧрд░реНрди Linux, рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ рд╕реНрдЯреНрд░реЗрд╕ред рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдгрдХреЛ рдХреНрд░рдордорд╛ рдХреБрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рднрдиреНрдиреЗ рдЬрд╛рдирдХрд╛рд░реА рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред

рд╕реБрд░реБрд╡рд╛рдд рдирд┐рдореНрди рдЖрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдЧрд░рд┐рдиреНрдЫ:

pvs-studio-analyzer trace -- make

рдпреЛ рдЙрджрд╛рд╣рд░рдгрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдореЗрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рддрд░ рдореЗрдХрд▓рд╛рдИ рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рд░реНрдорд╛рдг рд╕реБрд░реБ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреБрдиреИ рдкрдирд┐ рдЕрдиреНрдп рдЖрджреЗрд╢рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдпрд╕рд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп рддрд░рд┐рдХрд╛рдорд╛ рдкрд╛рд╕ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

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

pvs-studio-analyzer analyze -o /path/to/project.log

рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рд╕рд╛рде рдПрдХ рдПрдиреНрдХреЛрдб рдЧрд░рд┐рдПрдХреЛ рдлрд╛рдЗрд▓ рд╣реБрдиреЗрдЫ, рдЬрд╕рд▓рд╛рдИ рддрдкрд╛рдЗрдБ рд╕рдорд░реНрдерд┐рдд рдврд╛рдБрдЪрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╣рд╛рдореА рдЕрд░реНрдХреЛ рдЦрдгреНрдбрдорд╛ рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

рд╕реНрдЯреНрд░реЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрдирд┐ рдлрд╛рдЗрд▓рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ compile_commands.json (JSON рд╕рдВрдХрд▓рди рдбрд╛рдЯрд╛рдмреЗрд╕)ред рдзреЗрд░реИ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрдореНрдкрд╛рдЗрд▓рд░ рдХрд▓ рдЖрджреЗрд╢рд╣рд░реВ рдирд┐рд░реНрдпрд╛рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд╡рд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдмрд┐рдпрд░ред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдЗрдБ рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

pvs-studio-analyzer analyze тАУf /path/to/compile_commands.json

рдпреЛ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдЫ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рдХреЛ рдирд╛рдорджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрджрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЬрд╛рдБрдЪ рдЧрд░реНрджрд╛ "рдХреБрдиреИ рд╕рдВрдХрд▓рди рдПрдХрд╛рдЗрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд░реЗрди" рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдорд╛рд░реНрдлрдд рдЖрдлреНрдиреЛ рдХрдореНрдкрд╛рдЗрд▓рд░рдХреЛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред --рдХрдореНрдкрд╛рдЗрд▓рд░ рд╡рд╛ -c:

pvs-studio-analyzer analyze -c MyCompiler

рдпреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрди рд╕рдХреНрдЫ рдЬрдм рдХреНрд░рд╕-рдХрдореНрдкрд╛рдЗрд▓рд┐рдЩ рд░ рдЧреИрд░-рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓ рдирд╛рдорд╣рд░реВрдХреЛ рд╕рд╛рде рдХрдореНрдкрд╛рдЗрд▓рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдЕрдиреБрдЧрдорди рдореЛрдбрдорд╛ рдЪрд▓реНрдиреБрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рддрдкрд╛рдЗрдБ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓рд╛рдИ рддрдкрд╛рдЗрдБрдХреЛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рд╡рд╛ IDE рдорд╛ рдПрдХреАрдХреГрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдкрд╣рд┐рд▓реЗ рдиреИ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдПрдХреАрдХрд░рдг рд╕рдВрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реБ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдорд╛ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ GitHub PVS_Studio рднрдгреНрдбрд╛рд░рдорд╛:

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╕рд░реА рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдердк рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рддрд▓ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред Linux рднрд┐рддреНрд░ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдХрд╛рдЧрдЬрд╛рдд.

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

рдбрд┐рдЬрд╛рдЗрди рдЬрд╛рдБрдЪ рдЧрд░реЗрдкрдЫрд┐, рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдХреЛрдбрд┐рдд рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫред рдпрд╕рд▓рд╛рдИ рд╕рдорд░реНрдерд┐рдд рдврд╛рдБрдЪрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ plog-converter, рдЬреБрди PVS-Studio рд╕рдБрдЧ рд╕реНрдерд╛рдкрд┐рдд рдЫред

рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рдирд┐рдореНрди рдврд╛рдБрдЪрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ:

  • xml - рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╢реЛрдзрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдврд╛рдБрдЪрд╛, SonarQube рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд;
  • csv рдЯреЗрдмреБрд▓рд░ рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдкрд╛рда рдврд╛рдБрдЪрд╛ рд╣реЛ;
  • errorfile - gcc рд░ clang рдЖрдЙрдЯрдкреБрдЯ рдврд╛рдБрдЪрд╛;
  • рдХрд╛рд░реНрдпрд╕реВрдЪреА - рддреНрд░реБрдЯрд┐ рдврд╛рдБрдЪрд╛ рдЬреБрди QtCreator рдорд╛ рдЦреЛрд▓реНрди рд╕рдХрд┐рдиреНрдЫ;
  • html - рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгрдХреЛ рд╕рд╛рде html рд░рд┐рдкреЛрд░реНрдЯ;
  • fullhtml - рд╡рд┐рднрд┐рдиреНрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд░ рд╕реНрд░реЛрдд рдХреЛрдб рдорд╛рд░реНрдлрдд рдиреЗрднрд┐рдЧреЗрд╕рди рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдорд╣рд░реВрдХреЛ рд╕рд╛рде html рд░рд┐рдкреЛрд░реНрдЯред

рд░рд┐рдкреЛрд░реНрдЯ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ fullhtml рдврд╛рдБрдЪрд╛ рд╕рдмреИрднрдиреНрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ, рдХрд┐рдирдХрд┐ рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реНрд░реЛрдд рдХреЛрдбрдХреЛ рд▓рд╛рдЗрдирдорд╛ рдЬрд╛рди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрд╣рд╛рдБ рдЪреЗрддрд╛рд╡рдиреА рдЖрдпреЛред рдирд┐рдореНрди рдЖрджреЗрд╢рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд░рд┐рдкреЛрд░реНрдЯрд▓рд╛рдИ рдпрд╕ рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

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

рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрдЫрд┐, рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреЗрдЫ /path/report_dir, рдЬрд╕рдорд╛ рд░рд┐рдкреЛрд░реНрдЯ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫрдиреНред

рдХреБрдЮреНрдЬреАрдорд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН -aред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкреНрд░рддрд┐рд╡реЗрджрдирдорд╛ рдХреБрди рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреЗрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрджрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ рдпреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдорд╛рдерд┐рдХреЛ рдЖрджреЗрд╢рд▓реЗ рдПрдЙрдЯрд╛ рд░рд┐рдкреЛрд░реНрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ рдЬрд╕рдорд╛ рдкрд╣рд┐рд▓реЛ рд░ рджреЛрд╕реНрд░реЛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реНрддрд░рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдореВрд╣рдмрд╛рдЯ рдорд╛рддреНрд░ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВ рд╣реБрдиреЗрдЫрдиреН (рдЙрдЪреНрдЪ ╨╕ рдордзреНрдпрдо).

рдирдореВрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ:

рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ C++ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛ PVS-Studio рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓рд╛рдИ рдЪрд┐рдиреНрдиреЗ Linux

рд╕реЗрд▓рдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╕реНрдерд╛рди рд╕рдиреНрджреЗрд╢рд╣рд░реВ, рддрдкрд╛рдИрдВ рдХреЛрдбрдХреЛ рд╕рдореНрдмрдиреНрдзрд┐рдд рд▓рд╛рдЗрдирдорд╛ рдЬрд╛рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ C++ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛ PVS-Studio рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓рд╛рдИ рдЪрд┐рдиреНрдиреЗ Linux

рд╕реНрддрдореНрднрдорд╛ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдирдореНрдмрд░рдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХреЛрдб рдпрд╕ рдирд┐рджрд╛рдирдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗ рдХрд╛рдЧрдЬрд╛рдд рдЦреЛрд▓реНрдиреЗрдЫред

рджрдорди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЯреНрд░рд┐рдЧрд░рд╣рд░реВ

рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрдХреЛ рд╕рд╛рде рдХреЛрдб рдЬрд╛рдБрдЪ рдЧрд░реНрджрд╛, рдЧрд▓рдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡рд╛ рдХреЗрд╡рд▓ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рдиреНрджреЗрд╢рд╣рд░реВ (рд╢реЛрд░) рд╕рдореНрднрд╡ рдЫрдиреНред PVS-Studio рд▓реЗ рддреНрдпрд╕реНрддрд╛ рдЪреЗрддрд╛рд╡рдиреАрд╣рд░реВрд▓рд╛рдИ рджрдмрд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдВрдпрдиреНрддреНрд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдЯреНрд░рд┐рдЧрд░рд╣рд░реВрд▓рд╛рдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рджрдмрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдХрд╛рдЧрдЬрд╛рдд рд╕реЗрдХреНрд╕рдирдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рд╡рд┐рдзрд┐рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ "рдЭреВрдЯрд╛ рдЕрд▓рд░реНрдЯрд╣рд░реВ рджрдорди рдЧрд░реНрджреИ"ред

рд╕рд╛рдереИ, рдкреБрд░рд╛рдиреЛ рдХреЛрдбрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрджрд╛, рд╕рдмреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рджрдмрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрди рд╕рдХреНрдЫред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рдХреЛрдбрдмреЗрд╕рдорд╛ рдердкрд┐рдПрдХреЛ рдХреЛрдб рдорд╛рддреНрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рдЧрд░реНрди, рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рджрдмрд╛рдЙрдиреБ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реБ pvs-studio-рд╡рд┐рд╢реНрд▓реЗрд╖рдХ.

рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯрдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдмрд▓реНрдХ рджрдмрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

pvs-studio-analyzer suppress /path/to/report.log

рджрдмрд╛рдЗрдПрдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдлрд╛рдЗрд▓рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ suppress_base.json, рдЬреБрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдЫреЗрдЙрдорд╛ рдЫред рддреНрдпрд╕реНрддрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдЫрд┐рдХреЛ рдЬрд╛рдБрдЪрд╣рд░реВрдорд╛ рд░рд┐рдкреЛрд░реНрдЯрдмрд╛рдЯ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред

рдпрд╕ рд╕рдВрдпрдиреНрддреНрд░рд▓рд╛рдИ рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдпрд╣рд╛рдБ.

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

рдпреЛ PVS-рд╕реНрдЯреБрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд░рд┐рдЪрдп рдерд┐рдпреЛ Linuxрдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рдпреЛ рдЙрдкрдпреЛрдЧреА рдерд┐рдпреЛ рд░ рддрдкрд╛рдИрдВрд▓реЗ рд╕реЛрдзреНрдиреЗ рдХреЗрд╣реА рдмрд╛рд░рдореНрдмрд╛рд░ рд╕реЛрдзрд┐рдиреЗ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рдпреЛред рддрдкрд╛рдИрдВ рдпрд╕ рд╡рд┐рд╖рдпрдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрд╣рд╛рдБ.

рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ C++ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛ PVS-Studio рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓рд╛рдИ рдЪрд┐рдиреНрдиреЗ Linux

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпреЛ рд▓реЗрдЦ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓реНрдиреЗ рджрд░реНрд╢рдХрд╣рд░реВрд╕рдБрдЧ рд╕рд╛рдЭрд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рд▓рд┐рдЩреНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН: рдпреБрд░реА рдорд┐рдирд╛рдПрднред C++ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ PVS-рд╕реНрдЯреБрдбрд┐рдпреЛ рд╕реНрдЯреНрдпрд╛рдЯрд┐рдХ рдПрдирд╛рд▓рд╛рдЗрдЬрд░рд╕рдБрдЧ рд╕реБрд░реБ рдЧрд░реНрджреИ Linux.

рд╕реНрд░реЛрдд: www.habr.com

DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рднрдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд░рдкрд░реНрджреЛ рд╣реЛрд╕реНрдЯрд┐рдЩ рдЦрд░рд┐рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН ЁЯФе DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ рднрд░рдкрд░реНрджреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдЩ рдХрд┐рдиреНрдиреБрд╣реЛрд╕реН | ProHoster