PVS-Studio toetab C, C++, C# ja Java keeles kirjutatud projektide analüüsi. Analüsaatorit saab kasutada süsteemides Windows, Linux и macOSSee artikkel käsitleb C ja C++ keeles kirjutatud koodi analüüsi keskkonnas Linux.
Paigaldamine
Paigalda PVS-Studio alla Linux Selleks on mitu võimalust, olenevalt levitamise tüübist. Kõige mugavam ja eelistatum meetod on kasutada repositooriumi, kuna see võimaldab analüsaatori automaatset värskendamist uute versioonide ilmumisel. Teine võimalus on kasutada installipaketti, mille saab alla laadida. .
Installimiseks vajalikud käsud sõltuvad jaotusest. Linux, mida te kasutate. Näiteks süsteemide puhul, mis põhinevad Debian, repositooriumist installimine näeb välja selline:
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-studioPVS-Studio installimiseks installipaketist saate kasutada gdebi utiliiti:
sudo gdebi pvs-studio-VERSION.debInstalliprotsessi kirjeldatakse üksikasjalikumalt jaotises "» dokumentatsioon. Sealt leiate teavet ka süsteemide kohta, mis ei põhine Debian.
Pärast installimist peate sisestama litsentsiandmed. Selleks kasutatakse käsku
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]kus NIMI и KEY – nimi, mille all litsents on registreeritud, ja litsentsivõti. Valikuline parameeter või võimaldab määrata tee, kuhu litsentsifail genereeritakse. Vaikimisi salvestatakse see kataloogi ~/.config/PVS-Studio/.
Proovivõtme saate lehelt ""
Projekti kontrollimine
Pärast analüsaatori paigaldamist võite alustada projektide kontrollimist. Selleks on kaks peamist viisi.
- Koostamise jälgimine;
- Käivitage ehitusprotsessis otse ehitussüsteemist.
Vaatame kõigepealt esimest meetodit. Jälgimise alustamiseks Linux, vajate utiliiti . Analüsaator kasutab seda teabe kogumiseks selle kohta, millised protsessid projekti koostamise ajal töötasid.
Käivitamine toimub järgmise käsuga:
pvs-studio-analyzer trace -- makeSee näide kasutab ehitamiseks käsku make, kuid make võib asendada mis tahes muu käsuga, mida kasutate ehitamise käivitamiseks. Käsurea parameetreid saab talle edastada tavapärasel viisil.
Pärast ülesehitamist loob strace faili, mida parser kasutab lähtekoodi kontrollimiseks. Analüüsi saab alustada käsuga
pvs-studio-analyzer analyze -o /path/to/project.logVäljund on tulemustega kodeeritud fail, mille saate teisendada ühte toetatud vormingutest. Aruannetega töötamist arutame järgmises jaotises.
Lisaks strace kasutamisele saab analüüsi käivitada ka failipõhiselt compile_commands.json (JSON-i koostamise andmebaas). Paljud ehitussüsteemid võimaldavad teil eksportida kompilaatori kutsumiskäske või kasutada utiliiti . Sel juhul saab analüüsi alustada käsuga
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonTuleb märkida, et analüsaator tunneb kasutatud kompilaatori ära selle käivitatava faili nime järgi. Kui näete kontrollimisel tõrketeadet "Kompleerimisühikuid ei leitud", proovige parameetri kaudu määrata oma kompilaatori nimi --kompilaator või –c:
pvs-studio-analyzer analyze -c MyCompilerSeda võib vaja minna ristkompileerimisel ja mittestandardsete käivitatavate failinimedega kompilaatorite kasutamisel.
Lisaks monitorirežiimis töötamisele saate analüsaatori integreerida oma ehitussüsteemi või IDE-sse. Juba konfigureeritud integratsiooniga projektide näiteid leiate aadressilt PVS_Studio hoidlas:
Täpsemad juhised analüüsi läbiviimise kohta on saadaval allpool. Linux vaata sisse .
Aruannetega töötamine
Pärast disaini kontrollimist genereerib analüsaator kodeeritud raporti. Selle teisendamiseks ühte toetatud vormingutest peaksite kasutama utiliiti plog-muundur, mis paigaldatakse koos PVS-Stuudioga.
Utiliit toetab järgmisi vorminguid:
- xml – mugav vorming analüüsitulemuste täiendavaks töötlemiseks, mida toetab SonarQube'i pistikprogramm;
- csv on tabeliandmete esitamiseks loodud tekstivorming;
- errorfile - gcc ja clang väljundvorming;
- ülesandeloend - veavorming, mida saab avada QtCreatoris;
- html – html aruanne analüüsitulemuste lühikirjeldusega;
- fullhtml – html aruanne koos erinevate parameetrite ja lähtekoodi navigeerimisega sorteeritud analüüsitulemustega.
Aruande vaatamiseks on kõige mugavam täishtml-vorming, mis võimaldab hüpata lähtekoodi reale, kus hoiatus esines. Järgmine käsk võimaldab teil teisendada analüsaatori aruande sellesse vormingusse:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dirPärast käsu täitmist luuakse kataloog /tee/aruande_kataloog, mis sisaldab aruandefaile.
Pöörake tähelepanu võtmele -a. See võimaldab teil määrata, millised hoiatused tuleks aruandesse lisada. See on mugav, kui on vaja analüsaatori väljundit filtreerida. Ülaltoodud käsk genereerib aruande, mis sisaldab ainult hoiatusi esimese ja teise usaldustaseme üldisest analüüsirühmast (Kõrge и Keskmine).
Aruande näide:

Lahtris klõpsamisel Asukoht sõnumeid, saate hüpata vastavale koodireale:

Klõpsake veerus diagnostikanumbril kood avab seda diagnostikat kirjeldava dokumentatsiooni.
Analüsaatori summutamine
Koodi kontrollimisel staatilise analüsaatoriga on võimalikud valepositiivsed tulemused või lihtsalt soovimatud teated (müra). PVS-Studio pakub mehhanisme selliste hoiatuste summutamiseks. Häirete individuaalseks summutamiseks saate kasutada üht dokumentatsiooni jaotises ""
Samuti võib vana koodi analüüsimisel osutuda vajalikuks kõik sõnumid massiliselt maha suruda. Reeglina on see vajalik selleks, et kontrollida ainult olemasolevasse koodibaasi lisatud koodi. Selleks kasutage parameetrit keelustama kommunaalteenused pvs-stuudio-analüsaator.
Saate aruandes sõnumeid hulgi maha suruda järgmise käsuga:
pvs-studio-analyzer suppress /path/to/report.logTeave allasurutud sõnumite kohta salvestatakse faili suppress_base.json, mis asub projekti kõrval. Sellised teated jäetakse järgnevate kontrollide käigus aruandest välja.
Seda mehhanismi kirjeldatakse üksikasjalikumalt dokumentatsioonis. .
Järeldus
See oli lühike sissejuhatus PVS-Studio analüsaatori kasutamisse LinuxLoodan, et see oli abiks ja vastas mõnele teie kõige sagedamini esitatud küsimusele. Lisateavet selle teema kohta leiate dokumentatsioonist. .
Kui soovite seda artiklit inglise keelt kõneleva publikuga jagada, kasutage tõlkelinki: Juri Minaev. .
Allikas: www.habr.com
