เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ C++ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชตเชฟเช•เชธเชพเชตเชคเซ€ เชตเช–เชคเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชœเชพเชฃเชตเซเช‚ Linux

เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ C++ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชตเชฟเช•เชธเชพเชตเชคเซ€ เชตเช–เชคเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชœเชพเชฃเชตเซเช‚ Linuxเชชเซ€เชตเซ€เชเชธ-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชธเซ€, เชธเซ€++, เชธเซ€# เช…เชจเซ‡ เชœเชพเชตเชพเชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชจเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเชฟเชธเซเชŸเชฎเซ‹ เชชเชฐ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. Windows, Linux ะธ macOSเช† เชฒเซ‡เช– เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ C เช…เชจเซ‡ C++ เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒเชพ เช•เซ‹เชกเชจเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเชถเซ‡. Linux.

เชธเซเชฅเชพเชชเชจ

เชจเซ€เชšเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ 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-Studio เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ gdebi เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

sudo gdebi pvs-studio-VERSION.deb

เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ "เชฎเชพเช‚ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡.เชฎเชพเช‚ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช…เชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช Linuxยป เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เชคเซเชฏเชพเช‚ เชคเชฎเซ‡ เชธเชฟเชธเซเชŸเชฎเซ‹ เชตเชฟเชถเซ‡ เชชเชฃ เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชจเชฅเซ€ Debian.

เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ เชฒเชพเช‡เชธเชจเซเชธ เชกเซ‡เชŸเชพ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เชฎเชพเชŸเซ‡, เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡

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

เช•เซเชฏเชพเช‚ NAME ะธ KEY - เชœเซ‡ เชจเชพเชฎ เชนเซ‡เช เชณ เชฒเชพเช‡เชธเชจเซเชธ เชฐเชœเซ€เชธเซเชŸเชฐ เชฅเชฏเซ‡เชฒ เช›เซ‡ เช…เชจเซ‡ เชฒเชพเช‡เชธเชจเซเชธ เช•เซ€. เชตเซˆเช•เชฒเซเชชเชฟเช• เชชเชฐเชฟเชฎเชพเชฃ เช…เชฅเชตเชพ เชคเชฎเชจเซ‡ เชคเซ‡ เชชเชพเชฅ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชฒเชพเช‡เชธเชจเซเชธ เชซเชพเช‡เชฒ เชœเชจเชฐเซ‡เชŸ เชฅเชถเซ‡. เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชคเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡ ~/.config/PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹/.

เชคเชฎเซ‡ เชชเซƒเชทเซเช  เชชเชฐ เชŸเซเชฐเชพเชฏเชฒ เช•เซ€ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹ "เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ เช…เชจเซ‡ เชชเซ€เชตเซ€เชเชธ-เชธเซเชŸเซเชกเชฟเชฏเซ‹เชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹".

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชšเช•เชพเชธเชฃเซ€

เชตเชฟเชถเซเชฒเซ‡เชทเช• เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เชคเชฎเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชคเชชเชพเชธเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช† เช•เชฐเชตเชพเชจเซ€ เชฌเซ‡ เชฎเซเช–เซเชฏ เชฐเซ€เชคเซ‹ เช›เซ‡:

  1. เชธเช‚เช•เชฒเชจ เชฎเซ‹เชจเซ€เชŸเชฐเซ€เช‚เช—;
  2. เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚เชฅเซ€ เชธเซ€เชงเชพ เชœ เชฌเชฟเชฒเซเชก เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชšเชฒเชพเชตเซ‹.

เชšเชพเชฒเซ‹ เชชเชนเซ‡เชฒเชพ เชชเชนเซ‡เชฒเซ€ เชชเชฆเซเชงเชคเชฟ เชœเซ‹เชˆเช. เชจเซ€เชšเซ‡ เชฆเซ‡เช–เชฐเซ‡เช– เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ Linux, เชคเชฎเชพเชฐเซ‡ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เชธเซเชŸเซเชฐเซ‡เชธ. เชตเชฟเชถเซเชฒเซ‡เชทเช• เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เชจเชฟเชฐเซเชฎเชพเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช•เชˆ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชšเชพเชฒเซ€ เชฐเชนเซ€ เชนเชคเซ€ เชคเซ‡ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ‡ เช›เซ‡.

เชฒเซ‹เช‚เชš เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

pvs-studio-analyzer trace -- make

เช† เช‰เชฆเชพเชนเชฐเชฃ เชฌเชฟเชฒเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เชฌเชฟเชฒเซเชก เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹ เชคเซ‡ เช•เซ‹เชˆเชชเชฃ เช…เชจเซเชฏ เช†เชฆเซ‡เชถ เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เช•เชจเซ‡ เชฌเชฆเชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเซเชธ เชคเซ‡เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชชเชธเชพเชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชเช•เชตเชพเชฐ เชฌเชฟเชฒเซเชŸ เชฅเชˆ เช—เชฏเชพ เชชเช›เซ€, strace เชเช• เชซเชพเช‡เชฒ เชฌเชจเชพเชตเชถเซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเชพเชฐเซเชธเชฐ เชธเซเชฐเซ‹เชค เช•เซ‹เชกเชจเซ‡ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชถเซ‡. เชคเชฎเซ‡ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹

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

เช†เช‰เชŸเชชเซเชŸ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชธเชพเชฅเซ‡ เชเชจเซเช•เซ‹เชกเซ‡เชก เชซเชพเช‡เชฒ เชนเชถเซ‡, เชœเซ‡เชจเซ‡ เชคเชฎเซ‡ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชฎเซ‡ เช†เช—เชพเชฎเซ€ เชตเชฟเชญเชพเช—เชฎเชพเช‚ เช…เชนเซ‡เชตเชพเชฒเซ‹ เชธเชพเชฅเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชตเซเช‚ เชคเซ‡เชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเซ€เชถเซเช‚.

เชธเซเชŸเซเชฐเซ‡เชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เช‰เชชเชฐเชพเช‚เชค, เชซเชพเช‡เชฒเชจเชพ เช†เชงเชพเชฐเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชชเชฃ เชšเชฒเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ compile_commands.json (JSON เชธเช‚เช•เชฒเชจ เชกเซ‡เชŸเชพเชฌเซ‡เช). เช˜เชฃเซ€ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎเซเชธ เชคเชฎเชจเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เช‡เชจเซเชตเซ‹เช•เซ‡เชถเชจ เช†เชฆเซ‡เชถเซ‹ เชจเชฟเช•เชพเชธ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เช…เชฅเชตเชพ เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชฐเซ€เช‚เช›. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡

pvs-studio-analyzer analyze โ€“f /path/to/compile_commands.json

เช เชจเซ‹เช‚เชงเชตเซเช‚ เชœเซ‹เช‡เช เช•เซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเช• เชตเชชเชฐเชพเชฏเซ‡เชฒ เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‡ เชคเซ‡เชจเซ€ เชเช•เซเชเซ‡เช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชซเชพเช‡เชฒเชจเชพ เชจเชพเชฎเชฅเซ€ เช“เชณเช–เซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเชจเซ‡ เชคเชชเชพเชธ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ "เช•เซ‹เชˆ เชธเช‚เช•เชฒเชจ เชเช•เชฎเซ‹ เชฎเชณเซเชฏเชพ เชจเชฅเซ€" เชญเซ‚เชฒ เชฎเชณเซ‡ เช›เซ‡, เชคเซ‹ เชชเชฐเชฟเชฎเชพเชฃ เชฆเซเชตเชพเชฐเชพ เชคเชฎเชพเชฐเชพ เช•เชฎเซเชชเชพเชˆเชฒเชฐเชจเซเช‚ เชจเชพเชฎ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹. --เช•เชฎเซเชชเชพเช‡เชฒเชฐ เช…เชฅเชตเชพ -เชธเซ€:

pvs-studio-analyzer analyze -c MyCompiler

เชฌเชฟเชจ-เชฎเชพเชจเช• เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชซเชพเช‡เชฒ เชจเชพเชฎเซ‹ เชธเชพเชฅเซ‡ เช•เซเชฐเซ‹เชธ-เช•เชฎเซเชชเชพเช‡เชฒ เช…เชจเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช†เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ€ เชถเช•เซ‡ เช›เซ‡.

เชฎเซ‹เชจเชฟเชŸเชฐ เชฎเซ‹เชกเชฎเชพเช‚ เชšเชพเชฒเชตเชพ เช‰เชชเชฐเชพเช‚เชค, เชคเชฎเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชฌเชฟเชฒเซเชก เชธเชฟเชธเซเชŸเชฎ เช…เชฅเชตเชพ IDE เชฎเชพเช‚ เชเช•เซ€เช•เซƒเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชคเชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เชเช•เซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡เชจเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช…เชนเซ€เช‚ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹ GitHub PVS_Studio เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚:

เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชšเชฒเชพเชตเชตเซเช‚ เชคเซ‡ เช…เช‚เช—เซ‡ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชธเซ‚เชšเชจเชพเช“ เชจเซ€เชšเซ‡ เช‰เชชเชฒเชฌเซเชง เช›เซ‡. Linux เช…เช‚เชฆเชฐ เชœเซเช“ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ.

เช…เชนเซ‡เชตเชพเชฒเซ‹ เชธเชพเชฅเซ‡ เช•เชพเชฎ

เชกเชฟเชเชพเช‡เชจ เชคเชชเชพเชธเซเชฏเชพ เชชเช›เซ€, เชตเชฟเชถเซเชฒเซ‡เชทเช• เช•เซ‹เชกเซ‡เชก เชฐเชฟเชชเซ‹เชฐเซเชŸ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช เชชเซเชฒเซ‰เช—-เช•เชจเซเชตเชฐเซเชŸเชฐ, เชœเซ‡ PVS-Studio เชธเชพเชฅเซ‡ เชฎเชณเซ€เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡.

เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชจเซ€เชšเซ‡เชจเชพ เชซเซ‹เชฐเซเชฎเซ‡เชŸเซเชธเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡:

  • xml - เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเซ€ เชตเชงเชพเชฐเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฎเชพเชŸเซ‡ เช…เชจเซเช•เซ‚เชณ เชซเซ‹เชฐเซเชฎเซ‡เชŸ, SonarQube เชฎเชพเชŸเซ‡ เชชเซเชฒเช—เช‡เชจ เชฆเซเชตเชพเชฐเชพ เชธเชฎเชฐเซเชฅเชฟเชค;
  • csv เช เชŸเซ‡เชฌเซเชฏเซเชฒเชฐ เชกเซ‡เชŸเชพ เชฐเชœเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เชŸเซ‡เช•เซเชธเซเชŸ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช›เซ‡;
  • เชเชฐเชฐเชซเชพเชˆเชฒ - เชœเซ€เชธเซ€เชธเซ€ เช…เชจเซ‡ เช•เซเชฒเซ‡เช‚เช— เช†เช‰เชŸเชชเซเชŸ เชซเซ‹เชฐเซเชฎเซ‡เชŸ;
  • เชŸเชพเชธเซเช•เชฒเชฟเชธเซเชŸ - เชญเซ‚เชฒ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช•เซ‡ เชœเซ‡ 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-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชœเชพเชฃเชตเซเช‚ Linux

เชธเซ‡เชฒเชฎเชพเช‚ เช•เซเชฒเชฟเช• เช•เชฐเซ‹ เชธเซเชฅเชพเชจ เชธเช‚เชฆเซ‡เชถเชพเช“, เชคเชฎเซ‡ เช•เซ‹เชกเชจเซ€ เช…เชจเซเชฐเซ‚เชช เชฒเชพเช‡เชจ เชชเชฐ เชœเชˆ เชถเช•เซ‹ เช›เซ‹:

เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ C++ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชตเชฟเช•เชธเชพเชตเชคเซ€ เชตเช–เชคเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชœเชพเชฃเชตเซเช‚ Linux

เช•เซ‰เชฒเชฎเชฎเชพเช‚ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช• เชจเช‚เชฌเชฐ เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹ เช•เซ‹เชก เช† เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชคเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เช–เซ‹เชฒเชถเซ‡.

เชตเชฟเชถเซเชฒเซ‡เชทเช• เชฆเชฎเชจ

เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช• เชธเชพเชฅเซ‡ เช•เซ‹เชกเชจเซ‡ เชคเชชเชพเชธเชคเซ€ เชตเช–เชคเซ‡, เช–เซ‹เชŸเชพ เชนเช•เชพเชฐเชพเชคเซเชฎเช• เช…เชฅเชตเชพ เชซเช•เซเชค เช…เชจเชฟเชšเซเช›เชจเซ€เชฏ เชธเช‚เชฆเซ‡เชถเชพเช“ (เช…เชตเชพเชœ) เชถเช•เซเชฏ เช›เซ‡. PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เช†เชตเซ€ เชšเซ‡เชคเชตเชฃเซ€เช“เชจเซ‡ เชฆเชฌเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟเช“ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชเชฒเชพเชฐเซเชฎเชจเชพ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฆเชฎเชจ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เชชเชฆเซเชงเชคเชฟเช“เชฎเชพเช‚เชฅเซ€ เชเช• เชฒเชพเช—เซ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ "เช–เซ‹เชŸเซ€ เชšเซ‡เชคเชตเชฃเซ€ เชฆเชฎเชจ".

เช‰เชชเชฐเชพเช‚เชค, เชœเซ‚เชจเชพ เช•เซ‹เชกเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชฌเชงเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชฆเชฌเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ€ เชถเช•เซ‡ เช›เซ‡. เชจเชฟเชฏเชฎ เชชเซเชฐเชฎเชพเชฃเซ‡, เชนเชพเชฒเชจเชพ เช•เซ‹เชกเชฌเซ‡เชเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เช•เซ‹เชกเชจเซ‡ เชœ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เช† เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชชเชฐเชฟเชฎเชพเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เชฆเชฌเชพเชตเซ‹ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“ pvs-เชธเซเชŸเซเชกเชฟเชฏเซ‹-เชตเชฟเชถเซเชฒเซ‡เชทเช•.

เชคเชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เช…เชนเซ‡เชตเชพเชฒเชฎเชพเช‚ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ เชฌเชฒเซเช• เชฆเชฌเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹:

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

เชฆเชฌเชพเชฏเซ‡เชฒเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ suppress_base.json, เชœเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ€ เชฌเชพเชœเซเชฎเชพเช‚ เช†เชตเซ‡เชฒเซเช‚ เช›เซ‡. เช†เชตเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ เชชเช›เซ€เชจเซ€ เชคเชชเชพเชธเชฎเชพเช‚ เชฐเชฟเชชเซ‹เชฐเซเชŸเชฎเชพเช‚เชฅเซ€ เชฌเชพเช•เชพเชค เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡.

เช† เชชเชฆเซเชงเชคเชฟ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡. เช…เชนเซ€เช‚.

เชจเชฟเชทเซเช•เชฐเซเชท

เช† PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ‹ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชชเชฐเชฟเชšเชฏ เชนเชคเซ‹ Linuxเชฎเชจเซ‡ เช†เชถเชพ เช›เซ‡ เช•เซ‡ เช† เชฎเชฆเชฆเชฐเซ‚เชช เชฅเชฏเซเช‚ เชนเชถเซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฐเชพ เชตเชพเชฐเช‚เชตเชพเชฐ เชชเซ‚เช›เชพเชคเชพ เช•เซ‡เชŸเชฒเชพเช• เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชœเชตเชพเชฌ เชฎเชณเซเชฏเชพ เชนเชถเซ‡. เชคเชฎเซ‡ เช† เชตเชฟเชทเชฏ เชตเชฟเชถเซ‡ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ€ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชนเซ€เช‚.

เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ C++ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชตเชฟเช•เชธเชพเชตเชคเซ€ เชตเช–เชคเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชœเชพเชฃเชตเซเช‚ Linux

เชœเซ‹ เชคเชฎเซ‡ เช† เชฒเซ‡เช–เชจเซ‡ เช…เช‚เช—เซเชฐเซ‡เชœเซ€ เชฌเซ‹เชฒเชคเชพ เชชเซเชฐเซ‡เช•เซเชทเช•เซ‹ เชธเชพเชฅเซ‡ เชถเซ‡เชฐ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เช…เชจเซเชตเชพเชฆ เชฒเชฟเช‚เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹: เชฏเซเชฐเซ€ เชฎเชฟเชจเซ‡เชต. C++ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ เชฎเชพเชŸเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชธเซเชŸเซ‡เชŸเชฟเช• เชเชจเชพเชฒเชพเช‡เชเชฐ เชธเชพเชฅเซ‡ เชถเชฐเซ‚เช†เชค เช•เชฐเชตเซ€ Linux.

เชธเซ‹เชฐเซเชธ: www.habr.com

DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐ เชงเชฐเชพเชตเชคเซ€ เชธเชพเช‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ ๐Ÿ”ฅ DDoS เชธเซเชฐเช•เซเชทเชพ, VPS VDS เชธเชฐเซเชตเชฐเซเชธ เชธเชพเชฅเซ‡ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชนเซ‹เชธเซเชŸเชฟเช‚เช— เช–เชฐเซ€เชฆเซ‹ | ProHoster