PVS-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-Studio ααΈαααα ααααα‘αΎα α’αααα’αΆα ααααΎα§αααααααααΎααααΆαα gdebiα
sudo gdebi pvs-studio-VERSION.debααααΎαααΆαααα‘αΎαααααΌαααΆααα·αααααΆαααα’α·ααα αααα»αααααα "Β» α―αααΆαα αα ααΈααα α’αααααα’αΆα αααααααααααααΆαα’αααΈααααααααααααα·αααα’ααααΎ Debian.
αααααΆααααΈααΆαααα‘αΎαα’αααααααΌααααα αΌαααααααΆαα’αΆααααΆαααααα ααΎααααΈααααΎααΌα αααααΌαααααΎααΆααααααααΆ
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]ααααααααΆ NAME ΠΈ KEY - ααααααααα’αΆααααΆαααααααααΌαααΆαα α»ααααααΈ αα·αααα’αΆααααΆαααααα αααΆαααΆααααααααααα α α·ααα -α¬ α’αα»ααααΆαα±ααα’ααααααααΆααααααΌααααα―αααΆαα’αΆααααΆαααααααΉαααααΌαααΆααααααΎαα ααΆαααααΆαααΎαααΆααααΌαααΆααααααΆαα»ααααα»ααα ~/.config/PVS-Studio/.
α’αααα’αΆα ααα½αααΆααααααΉαααΆααααααα ααΎααααα ""α
ααΆααααααααααΆαααααααα
αααααΆααααΈααα‘αΎαα§ααααααα·ααΆα α’αααα’αΆα α αΆααααααΎααα·αα·αααααΎαααααααα ααΆααα·ααΈααααΆααααΈαααΎααααΈααααΎααΏααααα
- ααΆααααα½ααα·αα·αααααΆαα ααααα;
- ααααΎαααΆααααα»αα’αα‘α»ααααααααΎαααΆαααΆαααααααααααΆααααΈααααααααααααΆαααΆα
α αΌαααΎααα·αα·αααααΎααα·ααΈααΆαααααααααΌαααΆαα»ααα·αα ααΎααααΈα αΆααααααΎααααα½ααα·αα·ααααα ααααα Linux, α’αααααΉαααααΌαααΆαα§αααααααααΎααααΆαα . α’ααααα·ααΆαααααΎααΆααΎααααΈαααααΌαααααααΆαα’αααΈααααΎαααΆαααΆαα½ααααααααΌαααΆαα αΆααααααΎαααα‘α»αααααααααΎαααααααα
ααΆαααΆαααααα ααααααΌαααΆαα’αα»αααααααααΆααααααααΆααΌα ααΆααααααα
pvs-studio-analyzer trace -- makeα§ααΆα ααααααααααΎ make to build ααα»αααα make call α’αΆα ααααΌαααΆααααα½αααα command αααααααααααα’αααααααΎααΎααααΈα αΆααααααΎα buildα αααΆαααΆαααααααααααΆααααΆααααααααΆα’αΆα ααααΌαααΆααααααΌααα ααΆααΆαααααααααααΆα
αα ααααααααΎααα½α ααααααΉααααααΎαα―αααΆααααα’ααααα·ααΆαααΉαααααΎααΎααααΈαα·αα·αααααΎαααΌααααααα α’αααα’αΆα α αΆααααααΎαααΆααα·ααΆααααααααΎααΆααααααααΆ
pvs-studio-analyzer analyze -o /path/to/project.logααααααβααΉαβααΆβα―αααΆαβαααβααΆαβα’αα·αααΌαβααΆαα½αβαααααα αααβα’αααβα’αΆα βαααααααβαα ααΆβααααααβαααβααΆαβααΆααααα ααΎαααΉααα·αα·αααααΎαααΆαααααΎααΆαααΆαα½ααααΆαααΆααααα αααα»αααααααααααΆααα
ααααααααΈααΎααΆαααααΎ strace ααΆααα·ααΆαααα’αΆα ααααΎαααΆααααααα’ααααΎα―αααΆααααααα compile_commands.json (ααΌαααααΆααα·ααααααα ααααα JSON) α ααααααααααααΆαααΆααΆα αααΎαα’αα»ααααΆαα±ααα’αααααΆαα ααααΆααααααααΆα α αααααα·ααΈα ααααα α¬α’αααα’αΆα ααααΎα§αααααααααΎααααΆαα . αααα»αααααΈαααα’αααα’αΆα α αΆααααααΎαααΆααα·ααΆααααααααΎααΆααααααααΆ
pvs-studio-analyzer analyze βf /path/to/compile_commands.jsonααΆαα½αααααααΌαααΆαααααααααΆααααΆα’ααααα·ααΆαααα½αααααΆααα’αααα ααααααααααααΎααααααααα―αααΆααααα’αΆα ααααα·ααααα·ααΆαα ααααα·αααΎα’αααααα½αααΆαααα α»α "αααα·αααΎαα―αααΆα ααααα" αα ααααα·αα·ααα ααΌαααααΆααΆααααααΆαααααααα’αααα αααααααααα’αααααΆααααΆαααΆαααααα - α’αααα ααααα α¬ β α:
pvs-studio-analyzer analyze -c MyCompilerαααα’αΆα ααΆααΆαα αΆαααΆα ααα ααααααααΆαα ααααααααα αα·αααααΎααααΆαααααααα·ααΈα ααααααααααΆααααααα―αααΆαααααα·αα’αΆα ααααα·ααααα·ααΆααααααααΆαα
ααααααααΈααΎααΆαααααΎαααΆααααα»ααααααααα½ααα·αα·ααα α’αααα’αΆα αααα αΌαα§ααααααα·ααΆααα αααα»αααααααααααΆαααα α¬ IDE ααααα’αααα α§ααΆα αααααααααααααΆαα½αααΉαααΆααα½ααααα αΌααααααΆαααααααα ααΆαααααααααα½α α αΎαα’αΆα ααααΆααα αα αααα»αααααΆαα PVS_Studioα
ααΆαααααΆααααα’α·αααααααα’αααΈααααααααΎαααΆαααΆααα·ααΆαααΆααα ααΆααααααα Linux ααααΎα .
ααααΎααΆαααΆαα½ααααΆαααΆααα
αααααΆααααΈαα·αα·αααααΎαααΆααα ααΆ α’ααααα·ααΆααααααΎααααΆαααΆαααααΌαα ααΎααααΈαααααααααΆαα ααΆαααααααααααΆαααΆαααα α’ααααα½αααααααΎα§αααααααααΎααααΆαα αααααα·ααΈαααααα plogαααααααΌαααΆαααα‘αΎαααΆαα½α 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. ααΆα’αα»ααααΆαα±ααα’ααααααααΆααααΆααααααΆαααΆαα½αααααα½ααααα αΌααααα»ααααΆαααΆαααα ααΆααΆααααα½αααααα·αααΎααΆααααααΌαααΆααααα»αααΆαααααααααααααααα§ααααααα·ααΆαα ααΆααααααααΆααΆαααΎααΉααααααΎααααΆαααΆααααααααΉαααΆαααααΆααααααΆαααΈαααα»ααα·ααΆαααΌαα ααααααα·ααααα»αα α·αααααΈαα½α αα·αααΈααΈα (ααααα ΠΈ ααααα).
αααΆαααΆαααααααΌα

αααα α»α ααΎαααα‘αΆαα½αα ααΈααΆαα ααΆα α’αααα’αΆα ααααα ααΆαααααααΆααααΌααααααααΌαααααΆα

α α»α ααΎαααααααα·αα·α αααααααα»ααα½ααα αααααΌα ααΉαααΎαα―αααΆαααααα·αααααΆα’αααΈααααα·αα·α αααααααα
ααΆααααααααΆααααΆααααα§ααααααα·ααΆα
αα ααααα·αα·αααααΌααααααααΎα§ααααααα·ααΆααα·αα·αααα ααΆααα·αααααΆααα·ααα·α α¬ααΆαααααα·αα ααααΆα (ααα‘ααααααΆα) ααΊα’αΆα ααααΎαα ααΆαα PVS-Studio αααααααααααΆααααααΆαααααααααΆααααΆααααααΆαααααααα ααΎααααΈβαααααααΆααβααΆαβαααβααΆβααααααβαα»αααα α’αααβα’αΆα βααααΎβαα·ααΈβαα½αβαααα»αβα ααααβαα·ααΈβαααβααΆαβαα·αααααΆβαααα»αβαααααβα―αααΆα ""α
αααααΆαααα αα ααααα·ααΆαααΌαα αΆαα ααΆα’αΆα α αΆαααΆα ααααα»αααΆααααααααΆααααΆαααΆααα’ααα ααΆααααααΆ ααΆα αΆαααΆα αααΎααααΈαα·αα·αααααΎαααααΌααααααααΌαααΆααααααααα ααΌαααααΆαααΌααααααΆαααααΆααα ααΎααααΈααααΎααΌα αααααΌαααααΎαααΆαααΆαααααα αααααααΆα α§αααααααααΎααααΆαα pvs-studio-α’ααααα·ααΆα.
α’αααα’αΆα αααααααΆαααΆααααΆαα αααΎααα αααα»ααααΆαααΆααααααααααΎααΆααααααααΆααΆααααααα
pvs-studio-analyzer suppress /path/to/report.logααααααΆαα’αααΈααΆααααααααΌαααΆααααααααΆαααααΌαααΆααααααΆαα»ααααα»αα―αααΆααα½αα suppress_base.jsonααααααα·ααα ααΆααααααααα ααΆαααααααααααΌαααΆαααα ααααΈαααΆαααΆαααααα‘α»αααααααα½ααα·αα·αααααΆαααααααααΆααα
ααααααΆααααααααΌαααΆααα·αααααΆαααα’α·αααααααααααα αααα»αα―αααΆα .
ααα ααααΈααααα·ααααΆα
αααβααΆβααΆαβααααΆαβααααααβα’αααΈβααΆαβααααΎααααΆααβα§αααααβαα·ααΆα PVS-Studio ααααα... Linuxαααα»ααααααΉαααΆααΏααααααΆααααααααα α αΎαααΆαααααΎααααα½ααα½αα ααα½ααααα’ααααα½αααΉαααΆαααααα»αα α’αααα’αΆα α’αΆαααααααα’αααΈαααααΆαααααααα αααα»αα―αααΆαα .
ααααα·αααΎα’αααα
ααα
αααααααα’ααααααααααΆαα½ααααααα·αααααααα·ααΆαααΆααΆα’ααααααα ααΌαααααΎαααααααΆααααΆαααααααα Yuri Minaev α .
ααααα: www.habr.com
