Ukwazi i-PVS-Studio static analyzer xa uphuhlisa iinkqubo ze-C++ kwindawo ohlala kuyo Linux

Ukwazi i-PVS-Studio static analyzer xa uphuhlisa iinkqubo ze-C++ kwindawo ohlala kuyo LinuxI-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. apha.

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

Ukufakela i-PVS-Studio kwiphakheji yofakelo, ungasebenzisa into eluncedo ye-gdebi:

sudo gdebi pvs-studio-VERSION.deb

Inkqubo yokuhlohla ichazwe ngokubanzi kwicandelo "Ukufaka nokuhlaziya i-PVS-Studio kwi Linux» 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 "Khuphela kwaye uzame iPVS-Studio«.

Ukuqinisekiswa kweprojekthi

Emva kokufaka i-analyzer, ungaqala ukujonga iiprojekthi. Kukho iindlela ezimbini eziphambili zokwenza oku:

  1. Ukuqulunqa iliso;
  2. Qhuba ngexesha lenkqubo yokwakha ngokuthe ngqo kwinkqubo yokwakha.

Masiqale sijonge indlela yokuqala. Ukuqala ukujonga phantsi Linux, uza kuyidinga into yokusetyenziswa umtya. I-analyzer iyisebenzisa ukuqokelela ulwazi malunga nokuba zeziphi iinkqubo eziqaliswe ngexesha lokwakhiwa kweprojekthi.

Uphehlelelo lwenziwa ngalo myalelo ulandelayo:

pvs-studio-analyzer trace -- make

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

Imveliso 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 Bear. Kule meko, ungaqala uhlalutyo ngomyalelo

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

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

Oku 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 GitHub kwindawo yokugcina yePVS_Studio:

Imiyalelo eneenkcukacha ezithe vetshe malunga nendlela yokuqhuba uhlalutyo ifumaneka ngezantsi. Linux khangela kwi amaxwebhu.

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_dir

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

Ukwazi i-PVS-Studio static analyzer xa uphuhlisa iinkqubo ze-C++ kwindawo ohlala kuyo Linux

Ngokucofa kwiseli Indawo imiyalezo, ungatsibela kumgca ohambelanayo wekhowudi:

Ukwazi i-PVS-Studio static analyzer xa uphuhlisa iinkqubo ze-C++ kwindawo ohlala kuyo Linux

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 "Ukucinezela izilumkiso ezingeyonyani«.

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

Ulwazi malunga nemiyalezo ecinezelweyo igcinwa kwifayile suppress_base.json, esecaleni kweprojekthi. Imiyalezo enjalo ayibandakanywanga kwingxelo ngexesha lokujonga okulandelayo.

Lo matshini uchazwe ngokubanzi kumaxwebhu apha.

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

Ukwazi i-PVS-Studio static analyzer xa uphuhlisa iinkqubo ze-C++ kwindawo ohlala kuyo Linux

Ukuba ufuna ukwabelana ngeli nqaku kunye nabaphulaphuli abathetha isiNgesi, nceda usebenzise ikhonkco lokuguqulela: Yuri Minaev. Ukuqalisa nge-PVS-Studio Static Analyzer yoPhuhliso lwe-C++ phantsi Linux.

umthombo: www.habr.com

Thenga ukusingathwa okuthembekileyo kwiindawo ezinokhuseleko lweDDoS, iiseva zeVPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekileyo ngokhuseleko lwe-DDoS, iiseva zeVPS VDS | ProHoster