Mímọ PVS-Studio static analyzer nígbà tí a bá ń ṣe àgbékalẹ̀ àwọn ètò C++ ní àyíká Linux

Mímọ PVS-Studio static analyzer nígbà tí a bá ń ṣe àgbékalẹ̀ àwọn ètò C++ ní àyíká LinuxPVS-Studio ṣe atilẹyin fun itupalẹ awọn iṣẹ akanṣe ti a kọ ni C, C++, C#, ati Java. A le lo oluyẹwo naa lori awọn eto. Windows, Linux и macOSÀpilẹ̀kọ yìí yóò jíròrò ìṣàyẹ̀wò kódì tí a kọ ní C àti C++ nínú àyíká Linux.

eto

Fi PVS-Studio sori ẹrọ labẹ Linux Ọ̀nà púpọ̀ ló wà láti ṣe èyí, ó sinmi lórí irú ìpínkiri náà. Ọ̀nà tó rọrùn jùlọ àti èyí tó wù ú jùlọ ni láti lo ibi ìpamọ́, nítorí èyí ń jẹ́ kí a ṣe àtúnṣe aládàáṣe ti analyzer nígbà tí a bá tú àwọn ẹ̀yà tuntun jáde. Àṣàyàn kejì ni láti lo àpò ìfisẹ́lé, èyí tí a lè gbà láti gba. nibi.

Àwọn àṣẹ tí o nílò láti ṣiṣẹ́ fún fífi sori ẹrọ sinmi lórí ìpínkiri náà. Linux, èyí tí o ń lò. Fún àpẹẹrẹ, fún àwọn ètò tí ó dá lórí Debian, fifi sori ẹrọ lati ibi ipamọ naa dabi eyi:

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

Lati fi PVS-Studio sori ẹrọ lati package fifi sori ẹrọ, o le lo ohun elo gdebi:

sudo gdebi pvs-studio-VERSION.deb

Ilana fifi sori ẹrọ jẹ apejuwe ni awọn alaye diẹ sii ni "Fifi sori ẹrọ ati imudojuiwọn PVS-Studio ni Linux» àwọn ìwé. Níbẹ̀ o tún le rí ìwífún nípa àwọn ètò tí kò dá lórí Debian.

Lẹhin fifi sori ẹrọ, o nilo lati tẹ data iwe-aṣẹ sii. Fun eyi, a lo aṣẹ naa

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

Nibo orukọ и KỌ – orukọ labẹ eyiti iwe-aṣẹ ti forukọsilẹ ati bọtini iwe-aṣẹ. Iyan paramita -tabi gba ọ laaye lati ṣeto ọna nibiti faili iwe-aṣẹ yoo ṣe ipilẹṣẹ. Nipa aiyipada o ti wa ni ipamọ sinu ilana ~/.config/PVS-Studio/.

O le gba bọtini idanwo lori oju-iwe naa "Ṣe igbasilẹ ati gbiyanju PVS-Studio".

Ijeri ise agbese

Lẹhin fifi sori ẹrọ atunnkanka, o le bẹrẹ ṣayẹwo awọn iṣẹ akanṣe. Awọn ọna akọkọ meji lo wa lati ṣe eyi:

  1. Abojuto akopọ;
  2. Ṣiṣe ni awọn Kọ ilana taara lati awọn Kọ eto.

Ẹ jẹ́ ká kọ́kọ́ wo ọ̀nà àkọ́kọ́. Láti bẹ̀rẹ̀ sí í ṣe àbójútó lábẹ́ Linux, iwọ yoo nilo ohun elo kan okun. Oluyanju lo lati gba alaye nipa kini awọn ilana ti n ṣiṣẹ lakoko kikọ iṣẹ naa.

Ifilọlẹ naa jẹ nipasẹ aṣẹ atẹle:

pvs-studio-analyzer trace -- make

Apẹẹrẹ yii nlo ṣiṣe lati kọ, ṣugbọn ṣe le paarọ rẹ nipasẹ aṣẹ miiran ti o lo lati bẹrẹ kikọ naa. Awọn paramita laini aṣẹ le kọja si rẹ ni ọna deede.

Ni kete ti a kọ, strace yoo ṣẹda faili kan ti parser yoo lo lati ṣayẹwo koodu orisun naa. O le bẹrẹ itupalẹ pẹlu aṣẹ naa

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

Ijade yoo jẹ faili ti a fi koodu pamọ pẹlu awọn esi, eyiti o le yipada si ọkan ninu awọn ọna kika ti o ni atilẹyin. A yoo jiroro bi o ṣe le ṣiṣẹ pẹlu awọn ijabọ ni apakan atẹle.

Ni afikun si lilo strace, itupalẹ tun le ṣiṣẹ da lori faili kan compile_commands.json (JSON Compilation Database). Ọpọlọpọ awọn eto kikọ gba ọ laaye lati okeere awọn pipaṣẹ epe alakojo, tabi o le lo awọn IwUlO OWO. Ni idi eyi, itupalẹ le bẹrẹ pẹlu aṣẹ naa

pvs-studio-analyzer analyze –f /path/to/compile_commands.json

O yẹ ki o ṣe akiyesi pe olutupalẹ ṣe idanimọ olupilẹṣẹ ti a lo nipasẹ orukọ faili ti o ṣiṣẹ. Ti o ba ni aṣiṣe "Ko si awọn ẹya akopo ti a rii" nigbati o n ṣayẹwo, gbiyanju pato orukọ alakojọ rẹ nipasẹ paramita --akojọpọ tabi –c:

pvs-studio-analyzer analyze -c MyCompiler

Eyi le nilo nigba iṣakojọpọ ati lilo awọn alakojọ pẹlu awọn orukọ faili ti kii ṣe deede.

Ni afikun si ṣiṣiṣẹ ni ipo atẹle, o le ṣepọ olutupalẹ sinu eto kikọ tabi IDE rẹ. O le wa awọn apẹẹrẹ ti awọn iṣẹ akanṣe pẹlu iṣọpọ ti iṣeto tẹlẹ ni GitHub ninu ibi ipamọ PVS_Studio:

Àwọn ìtọ́ni tó kún rẹ́rẹ́ lórí bí a ṣe lè ṣe àgbéyẹ̀wò náà wà ní ìsàlẹ̀ yìí. Linux wo inu iwe.

Ṣiṣẹ pẹlu awọn iroyin

Lẹhin ti ṣayẹwo apẹrẹ naa, olutupalẹ ṣe agbejade ijabọ koodu kan. Lati le yipada si ọkan ninu awọn ọna kika atilẹyin, o yẹ ki o lo ohun elo naa plog-iyipada, eyi ti o ti fi sori ẹrọ pọ pẹlu PVS-Studio.

IwUlO ṣe atilẹyin awọn ọna kika wọnyi:

  • xml - ọna kika irọrun fun sisẹ afikun ti awọn abajade itupalẹ, ni atilẹyin nipasẹ ohun itanna fun SonarQube;
  • csv jẹ ọna kika ọrọ ti a ṣe apẹrẹ lati ṣe aṣoju data tabular;
  • aṣiṣe faili - gcc ati ọna kika idile;
  • tasklist - aṣiṣe kika ti o le wa ni la ni QtCreator;
  • html – html ijabọ pẹlu apejuwe kukuru ti awọn abajade onínọmbà;
  • fullhtml – Ijabọ html pẹlu awọn abajade itupalẹ lẹsẹsẹ nipasẹ awọn aye oriṣiriṣi ati lilọ kiri koodu orisun.

Lati wo ijabọ naa, ọna kika fullhtml jẹ irọrun julọ, bi o ṣe gba ọ laaye lati fo si laini koodu orisun ninu eyiti ikilọ naa waye. Aṣẹ atẹle n gba ọ laaye lati yi ijabọ atunnkanka pada si ọna kika yii:

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

Lẹhin ṣiṣe pipaṣẹ naa, itọsọna kan yoo ṣẹda /ona/report_dir, eyi ti yoo ni awọn faili iroyin.

San ifojusi si bọtini -a. O faye gba o lati pato iru ikilo yẹ ki o wa ninu awọn iroyin. Eyi jẹ irọrun ti iwulo ba wa lati ṣe àlẹmọ iṣelọpọ ti itupale. Aṣẹ ti o wa loke yoo ṣe agbekalẹ ijabọ kan ti yoo ni awọn ikilọ nikan lati ẹgbẹ itupalẹ gbogbogbo ti awọn ipele igbẹkẹle akọkọ ati keji (ga и alabọde).

Apeere jabo:

Mímọ PVS-Studio static analyzer nígbà tí a bá ń ṣe àgbékalẹ̀ àwọn ètò C++ ní àyíká Linux

Tẹ lori sẹẹli kan Location awọn ifiranṣẹ, o le fo si laini koodu ti o baamu:

Mímọ PVS-Studio static analyzer nígbà tí a bá ń ṣe àgbékalẹ̀ àwọn ètò C++ ní àyíká Linux

Tẹ nọmba aisan ti o wa ninu iwe Code yoo ṣii iwe ti n ṣalaye iwadii aisan yii.

Ipapa Oluyanju

Nigbati o ba ṣayẹwo koodu naa pẹlu olutupalẹ aimi, awọn idaniloju eke tabi awọn ifiranṣẹ aifẹ nirọrun (ariwo) ṣee ṣe. PVS-Studio n pese awọn ọna ṣiṣe fun idinku iru awọn ikilọ. Fun didi ẹni kọọkan ti awọn itaniji, o le lo ọkan ninu awọn ọna ti a ṣalaye ninu apakan iwe.Ipapa ikilọ eke".

Paapaa, nigba ti n ṣatupalẹ koodu atijọ, o le jẹ pataki lati tẹ gbogbo awọn ifiranṣẹ mọlẹ lọpọlọpọ. Gẹgẹbi ofin, eyi jẹ pataki lati ṣayẹwo nikan koodu ti o ṣafikun si koodu koodu to wa tẹlẹ. Lati ṣe eyi, lo paramita tẹmọlẹ ohun elo pvs-isise-itupalẹ.

O le di awọn ifiranšẹ idinku ninu ijabọ kan pẹlu aṣẹ atẹle:

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

Alaye nipa awọn ifiranšẹ ti tẹmọlẹ ti wa ni ipamọ sinu faili kan suppress_base.json, eyi ti o dubulẹ tókàn si ise agbese. Iru awọn ifiranṣẹ bẹẹ ni a yọkuro lati inu ijabọ ni awọn sọwedowo ti o tẹle.

Ilana yii jẹ apejuwe ni awọn alaye diẹ sii ninu iwe-ipamọ naa. nibi.

ipari

Èyí jẹ́ ìṣáájú kúkúrú sí lílo PVS-Studio analyzer lábẹ́ LinuxMo nireti pe eyi wulo ati idahun si diẹ ninu awọn ibeere ti o maa n beere nigbagbogbo. O le ka diẹ sii nipa koko yii ninu iwe-ipamọ naa. nibi.

Mímọ PVS-Studio static analyzer nígbà tí a bá ń ṣe àgbékalẹ̀ àwọn ètò C++ ní àyíká Linux

Ti o ba fẹ pin nkan yii pẹlu awọn olugbo ti o sọ Gẹẹsi, jọwọ lo ọna asopọ itumọ: Yuri Minaev. Bíbẹ̀rẹ̀ pẹ̀lú PVS-Studio Static Analyzer fún Ìdàgbàsókè C++ lábẹ́ Linux.

orisun: www.habr.com

Ra alejo gbigba igbẹkẹle fun awọn aaye pẹlu aabo DDoS, awọn olupin VPS VDS 🔥 Ra gbigbalejo oju opo wẹẹbu ti o gbẹkẹle pẹlu aabo DDoS, awọn olupin VPS VDS | ProHoster