Ke ʻike nei i ka mea kālailai static PVS-Studio i ka wā e hoʻomohala ana i nā polokalamu C++ i ke kaiapuni Linux

Ke ʻike nei i ka mea kālailai static PVS-Studio i ka wā e hoʻomohala ana i nā polokalamu C++ i ke kaiapuni LinuxKā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. maanei.

ʻ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-studio

No 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.deb

Ua wehewehe ʻia ke kaʻina hana hoʻonohonoho ma ka ʻāpana "Ke hoʻouka nei a me ka hoʻohou ʻana iā PVS-Studio ma Linux» 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 "Hoʻoiho a hoʻāʻo iā PVS-Studio".

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:

  1. Ka nānā 'ana i ka hui 'ana;
  2. 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 kaulaʻi. 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 -- make

Ke 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.log

He 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 BEAR. 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.json

Pono 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 MyCompiler

Pono 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 GitHub 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 palapala.

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_dir

Ma 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:

Ke ʻike nei i ka mea kālailai static PVS-Studio i ka wā e hoʻomohala ana i nā polokalamu C++ i ke kaiapuni Linux

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

Ke ʻike nei i ka mea kālailai static PVS-Studio i ka wā e hoʻomohala ana i nā polokalamu C++ i ke kaiapuni Linux

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 "Kaohi ana i na makaala hoopunipuni".

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.log

Mā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 maanei.

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. maanei.

Ke ʻike nei i ka mea kālailai static PVS-Studio i ka wā e hoʻomohala ana i nā polokalamu C++ i ke kaiapuni Linux

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. E hoʻomaka me ka PVS-Studio Static Analyzer no ka hoʻomohala ʻana o C++ ma lalo o Linux.

Source: www.habr.com

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster