PVS-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. .
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-studioKuisa PVS-Studio kubva pasuru yekuisa, unogona kushandisa gdebi utility:
sudo gdebi pvs-studio-VERSION.debIyo yekuisa maitiro inotsanangurwa zvakadzama muchikamu "» 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 "".
Kuongororwa kweprojekiti
Mushure mekuisa analyzer, unogona kutanga kutarisa mapurojekiti. Pane nzira mbiri huru dzekuita izvi:
- Compilation monitoring;
- Mhanya panguva yekuvaka maitiro zvakananga kubva kune kuvaka system.
Ngatitangei nekutarisa nzira yekutanga. Kutanga kutarisa pasi pe Linux, uchada chishandiso chekushandisa . Iyo analyzer inoshandisa iyo kuunganidza ruzivo rwekuti ndeapi maitiro akatangwa panguva yekuvaka purojekiti.
Kutanga kunoitwa nemurairo unotevera:
pvs-studio-analyzer trace -- makeUyu 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.logIyo 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 . Muchiitiko ichi, unogona kutanga kuongorora nemurairo
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonIzvo 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 MyCompilerIzvi 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 muPVS_Studio repository:
Mirayiridzo yakadzama yekuti ungaite sei ongororo iyi inowanikwa pazasi. Linux tarisa mukati .
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_dirMushure 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:

Nekudzvanya muchitokisi nzvimbo mameseji, unogona kusvetukira kumutsara unoenderana wekodhi:

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 "".
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.logRuzivo 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 .
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. .
Kana iwe uchida kugovera chinyorwa ichi nevateereri vanotaura Chirungu, tapota shandisa shanduro yekushandura: Yuri Minaev. .
Source: www.habr.com
