Kākoʻo ʻo PVS-Studio i ka nānā ʻana i nā papahana i kākau ʻia ma C, C++, C#, a me Java. Hiki ke hoʻohana ʻia ka mea loiloi ma nā ʻōnaehana Windows, Linux и macOSE kūkākūkā kēia ʻatikala i ka nānā ʻana o ke code i kākau ʻia ma C a me C++ i ke kaiapuni Linux.
Kāu Mau Koho Paʻamau
E hoʻouka iā PVS-Studio ma lalo o Linux Aia kekahi mau ala e hana ai i kēia, ma muli o ke ʻano o ka hoʻolaha ʻana. ʻO ke ʻano kūpono loa a makemake nui ʻia, ʻo ia ka hoʻohana ʻana i kahi waihona, no ka mea, e ʻae kēia i nā hoʻohou hou ʻana o ka mea kālailai ke hoʻokuʻu ʻia nā mana hou. ʻO ka lua o ke koho, ʻo ia ka hoʻohana ʻana i kahi pūʻolo hoʻonohonoho, hiki ke hoʻoiho ʻia. .
ʻO nā kauoha āu e pono ai e holo no ke kau ʻana e pili ana i ka hoʻolaha. Linux, āu e hoʻohana ai. Eia kekahi laʻana, no nā ʻōnaehana i hoʻokumu ʻia ma Debian, penei ke ʻano o ka hoʻouka ʻana mai ka waihona:
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-studioNo ka hoʻokomo ʻana i ka PVS-Studio mai kahi pūʻolo hoʻonohonoho, hiki iā ʻoe ke hoʻohana i ka pono gdebi:
sudo gdebi pvs-studio-VERSION.debUa wehewehe ʻia ke kaʻina hana hoʻonohonoho ma ka ʻāpana "» palapala. Ma laila hiki iā ʻoe ke loaʻa ka ʻike e pili ana i nā ʻōnaehana i hoʻokumu ʻole ʻia ma Debian.
Ma hope o ke kau ʻana, pono ʻoe e hoʻokomo i ka ʻike laikini. No ka hana ʻana i kēia, e hoʻohana i ke kauoha
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]'Ahea Inoa и KEY - ka inoa i hoʻopaʻa inoa ʻia ai ka laikini a me ke kī laikini. ʻāpana koho -o ʻole hiki iā ʻoe ke kuhikuhi i ke ala e hana ʻia ai ka faila laikini. Ma ka maʻamau, mālama ʻia ia ma ka papa kuhikuhi ~/.config/PVS-Studio/.
Hiki iā ʻoe ke loaʻa ke kī hoʻāʻo ma ka ʻaoʻao "".
Hōʻoia papahana
Ma hope o ka hoʻokomo ʻana i ka mea anaana, hiki iā ʻoe ke hoʻomaka e nānā i nā papahana. ʻElua mau ala nui e hana ai i kēia:
- Ka nānā 'ana i ka hui 'ana;
- E holo pololei i ka wā o ke kūkulu ʻana mai ka ʻōnaehana kūkulu.
E nānā mua kākou i ke ʻano mua. No ka hoʻomaka ʻana i ka nānā ʻana ma lalo o Linux, pono ʻoe i kahi mea hana . Hoʻohana ka mea ananala e hōʻiliʻili i ka ʻike e pili ana i nā kaʻina hana i hoʻomaka i ka wā o ke kūkulu ʻana.
Hoʻokō ʻia ka hoʻomaka ʻana me kēia kauoha:
pvs-studio-analyzer trace -- makeKe hoʻohana nei kēia hiʻohiʻona i make e kūkulu, akā hiki ke pani ʻia ke kelepona e kekahi kauoha ʻē aʻe āu e hoʻohana ai e hoʻomaka i ke kūkulu. Hiki ke hāʻawi ʻia nā ʻāpana laina kauoha iā ia ma ke ʻano maʻamau.
Ke kūkulu ʻia, e hana ʻo strace i kahi faila e hoʻohana ʻia e ka mea loiloi e nānā i ke kumu kumu. Hiki iā ʻoe ke hoʻomaka i ka nānā ʻana me ke kauoha
pvs-studio-analyzer analyze -o /path/to/project.logHe faila i hoʻopili ʻia ka hopena me nā hopena, hiki iā ʻoe ke hoʻololi i kekahi o nā ʻano i kākoʻo ʻia. E nānā mākou i ka hana ʻana me nā hōʻike ma ka ʻāpana aʻe.
Ma waho aʻe o ka hoʻohana ʻana i ka strace, hiki ke holo ʻia ka loiloi ma muli o kahi faila compile_commands.json (JSON Compilation Database). Nui nā ʻōnaehana kūkulu e ʻae iā ʻoe e hoʻopuka i nā kauoha kāhea compiler, a i ʻole hiki iā ʻoe ke hoʻohana i ka pono . I kēia hihia, hiki iā ʻoe ke hoʻomaka i ka nānā ʻana me ke kauoha
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonPono e hoʻomaopopo ʻia e ʻike ka mea nāna i ka mea hoʻopili i hoʻohana ʻia e ka inoa o kāna faila hiki ke hoʻokō. Inā loaʻa iā ʻoe ka hewa "ʻAʻole i loaʻa nā ʻāpana hui" i ka wā e nānā ai, e hoʻāʻo e kuhikuhi i ka inoa o kāu compiler ma o ka palena. –mea hoʻopili ai ole ia, –c:
pvs-studio-analyzer analyze -c MyCompilerPono paha kēia i ka wā e hoʻopili ai a hoʻohana i nā mea hōʻuluʻulu me nā inoa faila hoʻokō ʻole.
Ma waho aʻe o ka holo ʻana i ke ʻano nānā, hiki iā ʻoe ke hoʻohui i ka mea anana i kāu ʻōnaehana kūkulu a i ʻole IDE. Hiki ke loaʻa nā hiʻohiʻona o nā papahana me ka hoʻohui i hoʻonohonoho mua ʻia ma ma ka waihona PVS_Studio:
Aia ma lalo nā kuhikuhi kikoʻī hou aku e pili ana i ka holo ʻana o ka loiloi. Linux nānā i loko .
Ke hana nei me nā hōʻike
Ma hope o ka nānā ʻana i ka hoʻolālā, hoʻopuka ka mea anana i kahi hōʻike coded. I mea e hoʻololi ai i kekahi o nā ʻano i kākoʻo ʻia, pono ʻoe e hoʻohana i ka pono mea hoʻololi-palapala, i hoʻokomo ʻia me PVS-Studio.
Kākoʻo ka pono i nā ʻano like ʻole:
- xml - kahi ʻano kūpono no ka hoʻoponopono hou ʻana i nā hopena loiloi, kākoʻo ʻia e kahi plugin no SonarQube;
- csv - ʻano kikokikona i manaʻo ʻia no ka hōʻike ʻana i ka ʻikepili papa;
- errorfile - gcc a clang puka puka;
- papa inoa hana - ʻano kuhi hewa hiki ke wehe ʻia ma QtCreator;
- html - hōʻike html me kahi wehewehe pōkole o nā hopena loiloi;
- fullhtml - hōʻike html me ka hoʻokaʻawale ʻana i nā hopena loiloi e nā ʻāpana like ʻole a me ka hoʻokele ʻana ma o ke code kumu.
ʻOi aku ka maʻalahi o ke ʻano fullhtml no ka nānā ʻana i ka hōʻike, no ka mea hiki iā ʻoe ke hele i ka laina kumu kumu kahi i kū ai ka ʻōlelo aʻo. ʻO kēia kauoha e ʻae iā ʻoe e hoʻohuli i ka hōʻike analyer i kēia ʻano:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dirMa hope o ka hoʻokō ʻana i ke kauoha, e hana ʻia kahi papa kuhikuhi /path/report_dir, e loaʻa i nā faila hōʻike.
E hoʻolohe i ke kī -a. Hiki iā ʻoe ke kuhikuhi i nā ʻōlelo aʻo e hoʻokomo ʻia i loko o ka hōʻike. He mea maʻalahi kēia inā pono e kānana i ka puka ananalyer. Na ke kauoha i luna e hoʻokumu i kahi hōʻike e loaʻa ai nā ʻōlelo luhi wale nō mai ka pūʻulu loiloi maʻamau o nā pae hilinaʻi mua a me ka lua (High и Medium).
Hōʻike laʻana:

Ma ke kaomi ʻana i kahi kelepona Location nā memo, hiki iā ʻoe ke lele i ka laina o ke code:

Kaomi ma ka helu diagnostic ma ke kolamu Code e wehe i nā palapala e wehewehe ana i kēia diagnostic.
Kāohi ʻana i nā mea hoʻoheheʻe ʻana
I ka nānā ʻana i ke code me kahi mea hoʻoponopono static, hiki i nā ʻōlelo maikaʻi a i ʻole nā memo makemake ʻole (noise). Hāʻawi ʻo PVS-Studio i nā mīkini no ka hoʻopaʻa ʻana i kēlā mau ʻōlelo aʻo. No ka hoʻopau ʻana i nā mea hoʻowalewale, hiki iā ʻoe ke hoʻohana i kekahi o nā ʻano i wehewehe ʻia ma ka ʻāpana palapala "".
Eia kekahi, i ka nānā ʻana i nā code kahiko, pono paha e hoʻopau nui i nā memo āpau. ʻO ka maʻamau, pono kēia no ka nānā ʻana i ke code i hoʻohui ʻia i ka codebase e kū nei. No ka hana ʻana i kēia, e hoʻohana i ka parameter punina ʻaha hui uila pvs-studio-analyzer.
Hiki iā ʻoe ke kāohi nui i nā memo i kahi hōʻike me kēia kauoha:
pvs-studio-analyzer suppress /path/to/report.logMālama ʻia ka ʻike e pili ana i nā memo i hoʻopaʻa ʻia ma kahi faila suppress_base.json, e waiho ana ma ka aoao o ka papahana. Hoʻokuʻu ʻia ia mau memo mai ka hōʻike i ka wā o nā loiloi hope.
Ua wehewehe ʻia kēia ʻano hana ma ka palapala .
hopena
He hoʻolauna pōkole kēia i ka hoʻohana ʻana i ka mea kālailai PVS-Studio ma lalo o LinuxManaʻolana wau ua kōkua kēia a ua pane i kekahi o kāu mau nīnau i nīnau pinepine ʻia. Hiki iā ʻoe ke heluhelu hou aʻe e pili ana i kēia kumuhana ma ka palapala. .
Inā makemake ʻoe e kaʻana like i kēia ʻatikala me ka lehulehu ʻōlelo Pelekania, e ʻoluʻolu e hoʻohana i ka loulou unuhi: Yuri Minaev. .
Source: www.habr.com
