I-PVS-Studio ixhasa uhlalutyo lweeprojekthi ezibhalwe nge-C, C++, C#, kunye neJava. I-analyzer ingasetyenziswa kwiinkqubo Windows, Linux и macOSEli nqaku liza kuxoxa ngohlalutyo lwekhowudi ebhalwe kwi-C nakwi-C++ kwindawo esingqongileyo Linux.
isicwangciso
Faka i-PVS-Studio phantsi Linux Kukho iindlela ezahlukeneyo zokwenza oku, kuxhomekeke kuhlobo losasazo. Eyona ndlela ilula nekhethwayo kukusebenzisa indawo yokugcina idatha, njengoko oku kuvumela uhlaziyo oluzenzekelayo lwe-analyzer xa kukhutshwa iinguqulelo ezintsha. Ukhetho lwesibini kukusebenzisa iphakheji yokufaka, enokukhutshelwa. .
Imiyalelo ekufuneka uyisebenzele xa uyifaka ixhomekeke kulwabiwo. Linux, oyisebenzisayo. Umzekelo, kwiinkqubo ezisekelwe kwi Debian, ukufakwa kwindawo yokugcina izinto kubonakala ngolu hlobo:
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-studioUkufakela i-PVS-Studio kwiphakheji yofakelo, ungasebenzisa into eluncedo ye-gdebi:
sudo gdebi pvs-studio-VERSION.debInkqubo yokuhlohla ichazwe ngokubanzi kwicandelo "» amaxwebhu. Apho ungafumana ulwazi malunga neenkqubo ezingasekelwanga kwi Debian.
Emva kokufakela, kufuneka ufake ulwazi lwelayisensi. Ukwenza oku, sebenzisa umyalelo
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]Kuphi NAME и KEYI – igama apho iphepha-mvume libhaliswe khona kunye neqhosha lelayisenisi. Ukhetho lweparameter -okanye ikuvumela ukuba ukhankanye umendo apho ifayile yelayisensi izakwenziwa. Ngokungagqibekanga igcinwa kulawulo ~/.config/PVS-Studio/.
Ungafumana isitshixo sesilingo kwiphepha "«.
Ukuqinisekiswa kweprojekthi
Emva kokufaka i-analyzer, ungaqala ukujonga iiprojekthi. Kukho iindlela ezimbini eziphambili zokwenza oku:
- Ukuqulunqa iliso;
- Qhuba ngexesha lenkqubo yokwakha ngokuthe ngqo kwinkqubo yokwakha.
Masiqale sijonge indlela yokuqala. Ukuqala ukujonga phantsi Linux, uza kuyidinga into yokusetyenziswa . I-analyzer iyisebenzisa ukuqokelela ulwazi malunga nokuba zeziphi iinkqubo eziqaliswe ngexesha lokwakhiwa kweprojekthi.
Uphehlelelo lwenziwa ngalo myalelo ulandelayo:
pvs-studio-analyzer trace -- makeLo mzekelo usebenzisa ukwenza ukwakha, kodwa ukufowuna kunokutshintshwa ngawo nawuphi na omnye umyalelo owusebenzisayo ukuqalisa ukwakha. Iiparamitha zomgca womyalelo zinokugqithiselwa kuyo ngendlela eqhelekileyo.
Nje ukuba yakhiwe, i-strace iya kudala ifayile eya kusetyenziswa ngumhlalutyi ukujonga ikhowudi yomthombo. Unokuqala uhlalutyo ngomyalelo
pvs-studio-analyzer analyze -o /path/to/project.logImveliso iya kuba yifayile ekhowudiweyo eneziphumo, onokuthi uyiguqulele kwenye yeefomati ezixhaswayo. Siza kujonga ukusebenza ngeengxelo kwicandelo elilandelayo.
Ukongeza ekusebenziseni umtya, uhlalutyo lunokuthi luqhutywe ngokusekelwe kwifayile qokelela_imiyalelo.json (JSON Compilation Database). Iinkqubo ezininzi zokwakha zikuvumela ukuba ukhuphele ngaphandle imiyalelo yomqambi wefowuni, okanye ungasebenzisa into eluncedo . Kule meko, ungaqala uhlalutyo ngomyalelo
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonKufuneka kuqatshelwe ukuba umhlalutyi uyaqaphela umqokeleli osetyenziswa ligama lefayile yalo ephunyezwayo. Ukuba ufumana impazamo "Akukho yunithi zokudibanisa zifunyenweyo" xa ujonga, zama ukukhankanya igama lomqokeleli wakho ngeparameter. -umqokeleli okanye -c:
pvs-studio-analyzer analyze -c MyCompilerOku kunokuba yimfuneko xa udibanisa kwaye usebenzisa abahlanganisi abanamagama efayile angenamgangatho ophunyeziweyo.
Ukongeza ekusebenzeni kwimodi yokubeka iliso, unokudibanisa umhlalutyi kwinkqubo yakho yokwakha okanye i-IDE. Imizekelo yeeprojekthi ezinohlanganiso olusele lucwangcisiwe inokufunyanwa apha kwindawo yokugcina yePVS_Studio:
Imiyalelo eneenkcukacha ezithe vetshe malunga nendlela yokuqhuba uhlalutyo ifumaneka ngezantsi. Linux khangela kwi .
Ukusebenza ngeengxelo
Emva kokujonga uyilo, i-analyzer ivelisa ingxelo enekhowudi. Ukuze uyiguqulele kwenye yeefomati ezixhaswayo, kufuneka usebenzise into eluncedo iplagi-converter, efakwe kunye ne-PVS-Studio.
Isixhobo sixhasa ezi fomati zilandelayo:
- xml – ifomathi efanelekileyo yokuqhubela phambili okongeziweyo kweziphumo zohlalutyo, exhaswa yiplagi ye-SonarQube;
- csv – ifomathi yokubhaliweyo elungiselelwe ukubonisa idatha yetheyibhile;
- ifayile yempazamo - i-gcc kunye nefomati yemveliso ye-clang;
- uluhlu lwemisebenzi – ifomathi yemposiso enokuvulwa kwiQtCreator;
- Ingxelo ye-html - html enenkcazo emfutshane yeziphumo zohlalutyo;
- i-fullhtml - ingxelo ye-html eneziphumo zohlalutyo lokuhlela ngeeparamitha ezahlukeneyo kunye nokukhangela ngekhowudi yomthombo.
Ifomati epheleleyo yehtml ilungele kakhulu ukujonga ingxelo, njengoko ikuvumela ukuba uye kumgca wekhowudi yemvelaphi apho isilumkiso senzeke khona. Lo myalelo ulandelayo ikuvumela ukuba uguqule ingxelo yomhlalutyi kule fomati:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dirEmva kokuphumeza umyalelo, uvimba weefayili uya kwenziwa /indlela/ingxelo_dir, eya kuba neefayile zengxelo.
Nika ingqalelo kwisitshixo -a. Ikuvumela ukuba uchaze ukuba zeziphi izilumkiso ekufuneka zifakwe kwingxelo. Oku kulungele ukuba kukho imfuneko yokucoca imveliso ye-analyzer. Lo myalelo ungentla uza kwenza ingxelo eya kuqulatha kuphela izilumkiso ezivela kwiqela lokuhlalutya ngokubanzi kwinqanaba lokuqala kunye nelesibini lokuzithemba (phezulu и phakathi).
Ingxelo yesampulu:

Ngokucofa kwiseli Indawo imiyalezo, ungatsibela kumgca ohambelanayo wekhowudi:

Cofa kwinombolo yoxilongo kwikholamu ikhowudi izakuvula amaxwebhu achaza olu diagnostic.
Ukucinezela i-analyser triggers
Xa ujonga ikhowudi nge-static analyzer, i-positives yobuxoki okanye imiyalezo engafunekiyo (ingxolo) inokwenzeka. I-PVS-Studio ibonelela ngeendlela zokucinezela izilumkiso ezinjalo. Ukucinezela izichukumisi, ungasebenzisa enye yeendlela ezichazwe kwicandelo lamaxwebhu "«.
Kwakhona, xa uhlalutya ikhowudi endala, kunokuba yimfuneko ukucinezela kakhulu yonke imiyalezo. Ngokuqhelekileyo, oku kuyimfuneko ukwenzela ukujonga kuphela ikhowudi eyongeziweyo kwi-codebase ekhoyo. Ukwenza oku, sebenzisa iparameter cinezela izinto eziluncedo pvs-studio-analyzer.
Ungayicinezela kakhulu imiyalezo kwingxelo ngalo myalelo ulandelayo:
pvs-studio-analyzer suppress /path/to/report.logUlwazi malunga nemiyalezo ecinezelweyo igcinwa kwifayile suppress_base.json, esecaleni kweprojekthi. Imiyalezo enjalo ayibandakanywanga kwingxelo ngexesha lokujonga okulandelayo.
Lo matshini uchazwe ngokubanzi kumaxwebhu .
isiphelo
Le yayiyintshayelelo emfutshane yokusebenzisa i-PVS-Studio analyzer phantsi LinuxNdiyathemba ukuba oku kube luncedo kwaye kuphendule eminye yemibuzo yakho ebuzwa rhoqo. Ungafunda okungakumbi ngalo mba kuxwebhu. .
Ukuba ufuna ukwabelana ngeli nqaku kunye nabaphulaphuli abathetha isiNgesi, nceda usebenzise ikhonkco lokuguqulela: Yuri Minaev. .
umthombo: www.habr.com
