Kuziva PVS-Studio static analyzer paunenge uchigadzira mapurogiramu eC++ munzvimbo yauri kushandira Linux

Kuziva PVS-Studio static analyzer paunenge uchigadzira mapurogiramu eC++ munzvimbo yauri kushandira LinuxPVS-Studio inotsigira kuongororwa kwemapurojekiti akanyorwa muC, C++, C#, uye Java. Iyo analyzer inogona kushandiswa pamasisitimu Windows, Linux и macOSChinyorwa chino chichakurukura kuongororwa kwekodhi yakanyorwa muC neC++ munharaunda Linux.

Kuiswa

Isa PVS-Studio pasi pe Linux Kune nzira dzakawanda dzekuita izvi, zvichienderana nerudzi rwekugoverwa. Nzira iri nyore uye inofarirwa ndeyekushandisa repository, sezvo izvi zvichibvumira otomatiki kugadzirisa kweanalyzer kana shanduro itsva dzaburitswa. Sarudzo yechipiri ndeyekushandisa package yekuisa, iyo inogona kudhawunirodhwa. pano.

Mirairo yaunoda kumhanya nayo pakuisa inoenderana nekugoverwa kwayo. Linux, yaunoshandisa. Semuenzaniso, kune masisitimu akavakirwa pa Debian, kuiswa kubva panzvimbo yekuchengetedza kunoita seizvi:

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

Kuisa PVS-Studio kubva pasuru yekuisa, unogona kushandisa gdebi utility:

sudo gdebi pvs-studio-VERSION.deb

Iyo yekuisa maitiro inotsanangurwa zvakadzama muchikamu "Kuisa nekugadzirisa PVS-Studio mu Linux» magwaro. Ikoko unogona zvakare kuwana ruzivo nezve masisitimu asina kuenderana ne Debian.

Mushure mekuisa, iwe unofanirwa kuisa ruzivo rwerezinesi. Kuti uite izvi, shandisa murairo

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

Kupi ZITA и CHINHU - zita iro rezinesi rakanyoreswa uye kiyi rezinesi. Optional parameter -kana inokutendera kuti utaure nzira iyo faira rezinesi richagadzirwa. Nokusingaperi inochengetwa mudhairekitori ~/.config/PVS-Studio/.

Unogona kuwana kiyi yekuedza pane peji "Dhawunirodha uye edza PVS-Studio".

Kuongororwa kweprojekiti

Mushure mekuisa analyzer, unogona kutanga kutarisa mapurojekiti. Pane nzira mbiri huru dzekuita izvi:

  1. Compilation monitoring;
  2. Mhanya panguva yekuvaka maitiro zvakananga kubva kune kuvaka system.

Ngatitangei nekutarisa nzira yekutanga. Kutanga kutarisa pasi pe Linux, uchada chishandiso chekushandisa tambo. Iyo analyzer inoshandisa iyo kuunganidza ruzivo rwekuti ndeapi maitiro akatangwa panguva yekuvaka purojekiti.

Kutanga kunoitwa nemurairo unotevera:

pvs-studio-analyzer trace -- make

Uyu muenzaniso unoshandisa make kuvaka, asi iyo make call inogona kutsiviwa nemumwe murairo waunoshandisa kutanga kuvaka. Command line parameters inogona kupfuudzwa kwairi nenzira yakajairika.

Kana yangovakwa, tambo ichagadzira faira iyo iyo analyzer ichashandisa kutarisa iyo kodhi kodhi. Iwe unogona kutanga kuongorora nemurairo

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

Iyo inobuda ichave yakavharidzirwa faira ine mhedzisiro, iyo iwe yaunogona kushandura kune imwe yemafomati anotsigirwa. Tichatarisa kushanda nemishumo muchikamu chinotevera.

Pamusoro pekushandisa strace, ongororo inogonawo kuitwa zvichibva pane faira compile_commands.json (JSON Compilation Database). Mazhinji ekuvaka masisitimu anobvumidza iwe kutumira kunze compiler call mirairo, kana iwe unogona kushandisa utility YOKU'BEREKA. Muchiitiko ichi, unogona kutanga kuongorora nemurairo

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

Izvo zvinofanirwa kucherechedzwa kuti analyzer inoziva iyo compiler inoshandiswa nezita reiyo faira faira. Kana iwe ukagamuchira kukanganisa "Hapana mayuniti ekubatanidza akawanikwa" paunenge uchitarisa, edza kutsanangura zita remugadziri wako kuburikidza neparameter. -compiler kana -c:

pvs-studio-analyzer analyze -c MyCompiler

Izvi zvinogona kudikanwa kana uchiyambuka-uye uchishandisa ma compiler ane asiri-standard executable mafaira mazita.

Pamusoro pekumhanya mukutarisa maitiro, unogona kubatanidza iyo analyzer mune yako yekuvaka system kana IDE. Mienzaniso yemapurojekiti ane yakatomisikidzwa kubatanidzwa inogona kuwanikwa pa GitHub muPVS_Studio repository:

Mirayiridzo yakadzama yekuti ungaite sei ongororo iyi inowanikwa pazasi. Linux tarisa mukati zvinyorwa.

Kushanda nemishumo

Mushure mekutarisa dhizaini, analyzer inogadzira kodhi rekodhi. Kuti uishandure kune imwe yemafomati anotsigirwa, iwe unofanirwa kushandisa iyo yekushandisa purogi-inoshandura, iyo yakaiswa nePVS-Studio.

Iyo yekushandisa inotsigira anotevera mafomati:

  • xml - chimiro chiri nyore chekuwedzera kugadzirisa kwemhedzisiro yekuongorora, inotsigirwa neplugin yeSonarQube;
  • csv - mameseji fomati akaitirwa kuratidza tabular data;
  • kukanganisa - gcc uye clang yakabuda fomati;
  • Tasklist - kukanganisa fomati inogona kuvhurwa muQtCreator;
  • html - html report ine tsananguro pfupi yemhedzisiro yekuongorora;
  • fullhtml - html shumo ine kurongedza mibairo yekuongorora neakasiyana paramita uye kufamba kuburikidza neiyo kodhi kodhi.

Iyo fullhtml fomati ndiyo yakanyanya nyore kuona iyo report, sezvo ichikutendera kuti uende kumutsara wekodhi yekodhi kwakaitika yambiro. Iwo unotevera kuraira unobvumidza iwe kushandura iyo analyzer report kune iyi fomati:

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

Mushure mekuita murairo, dhairekitori ichagadzirwa /path/report_dir, iyo ichange iine mafaira emushumo.

Ngwarira kukiyi -a. Zvinokutendera kuti utaure kuti ndedzipi yambiro dzinofanira kuiswa mumushumo. Izvi zviri nyore kana paine chinodiwa kusefa iyo analyzer inobuda. Murairo wepamusoro uchaburitsa chirevo chinenge chine yambiro chete kubva kuboka rekuongorora rekutanga neyechipiri mazinga ekuvimba (High и nzira).

Sample report:

Kuziva PVS-Studio static analyzer paunenge uchigadzira mapurogiramu eC++ munzvimbo yauri kushandira Linux

Nekudzvanya muchitokisi nzvimbo mameseji, unogona kusvetukira kumutsara unoenderana wekodhi:

Kuziva PVS-Studio static analyzer paunenge uchigadzira mapurogiramu eC++ munzvimbo yauri kushandira Linux

Dzvanya panhamba yekuongorora iri mukoramu kodhi ichavhura zvinyorwa zvinotsanangura chirwere ichi.

Kudzvinyirira analyzer zvinokonzeresa

Paunenge uchitarisa kodhi ine static analyzer, nhema positives kana kungoita zvisingadiwe meseji (ruzha) zvinogoneka. PVS-Studio inopa maitiro ekudzvinyirira yambiro dzakadaro. Kudzvanya zvinokonzeresa wega, unogona kushandisa imwe yenzira dzinotsanangurwa muchikamu chezvinyorwa "Kudzvanya Nyevero Dzenhema".

Zvakare, kana uchiongorora kodhi yekare, zvingave zvakakosha kudzvinyirira zvakanyanya mameseji ese. Kazhinji, izvi zvinodikanwa kuti utarise chete kodhi iyo inowedzerwa kune iripo codebase. Kuti uite izvi, shandisa parameter dzvinyirira zvinoshandiswa pvs-studio-analyzer.

Iwe unogona kudzvinyirira zvakanyanya mameseji mumushumo nemurairo unotevera:

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

Ruzivo nezve meseji dzakadzvanywa inochengetwa mufaira suppress_base.json, iyo iri pedyo neprojekti. Mameseji akadaro haasanganisirwe kubva mushumo panguva dzinotevera dzekutarisa.

Iyi nzira inotsanangurwa zvakadzama muzvinyorwa pano.

mhedziso

Iyi yaive sumo pfupi yekushandisa PVS-Studio analyzer pasi pe LinuxNdinovimba izvi zvakabatsira uye zvakapindura mimwe yemibvunzo yako inowanzo bvunzwa. Unogona kuverenga zvakawanda nezvenyaya iyi muchinyorwa. pano.

Kuziva PVS-Studio static analyzer paunenge uchigadzira mapurogiramu eC++ munzvimbo yauri kushandira Linux

Kana iwe uchida kugovera chinyorwa ichi nevateereri vanotaura Chirungu, tapota shandisa shanduro yekushandura: Yuri Minaev. Kutanga nePVS-Studio Static Analyzer yeC++ Development pasi pe Linux.

Source: www.habr.com

Tenga inovimbika yekutambira kwemasaiti ane DDoS dziviriro, VPS VDS maseva 🔥 Tenga webhusaiti yakavimbika ine dziviriro yeDDoS, maseva eVPS VDS | ProHoster