LÀr kÀnna den statiska analysatorn PVS-Studio vid utveckling av C++-program i miljön Linux

LÀr kÀnna den statiska analysatorn PVS-Studio vid utveckling av C++-program i miljön LinuxPVS-Studio stöder analys av projekt skrivna i C, C++, C# och Java. Analysatorn kan anvÀndas pÄ system Windows, Linux О macOSDen hÀr artikeln kommer att diskutera analys av kod skriven i C och C++ i en miljö Linux.

Installation

Installera PVS-Studio under Linux Det finns flera sÀtt att göra detta, beroende pÄ distributionstyp. Den enklaste och mest föredragna metoden Àr att anvÀnda ett repository, eftersom detta möjliggör automatiska uppdateringar av analysatorn nÀr nya versioner slÀpps. Det andra alternativet Àr att anvÀnda ett installationspaket, som kan laddas ner. hÀr.

Vilka kommandon du behöver köra för installationen beror pÄ distributionen. Linux, som du anvÀnder. Till exempel för system baserade pÄ Debian, installationen frÄn arkivet ser ut sÄ hÀr:

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

För att installera PVS-Studio frÄn installationspaketet kan du anvÀnda gdebi-verktyget:

sudo gdebi pvs-studio-VERSION.deb

Installationsprocessen beskrivs mer i detalj i "Installera och uppdatera PVS-Studio i Linux» dokumentation. DÀr kan du Àven hitta information om system som inte Àr baserade pÄ Debian.

Efter installationen mÄste du ange licensdata. För detta anvÀnds kommandot

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

var NAMN Đž NYCKEL – namnet under vilket licensen Ă€r registrerad och licensnyckeln. Valfri parameter -eller lĂ„ter dig stĂ€lla in sökvĂ€gen dĂ€r licensfilen ska genereras. Som standard lagras den i katalogen ~/.config/PVS-Studio/.

Du kan fÄ en provnyckel pÄ sidan "Ladda ner och prova PVS-Studio".

Projektverifiering

Efter installation av analysatorn kan du börja kontrollera projekt. Det finns tvÄ huvudsakliga sÀtt att göra detta:

  1. SammanstÀllningsövervakning;
  2. Kör i byggprocessen direkt frÄn byggsystemet.

LÄt oss titta pÄ den första metoden först. För att börja övervaka under Linux, du behöver ett verktyg strace. Analysatorn anvÀnder den för att samla in information om vilka processer som kördes under uppbyggnaden av projektet.

Starten görs med följande kommando:

pvs-studio-analyzer trace -- make

Det hÀr exemplet anvÀnder make to build, men make kan ersÀttas av vilket annat kommando som helst du anvÀnder för att starta bygget. Kommandoradsparametrar kan skickas till den pÄ vanligt sÀtt.

NÀr den har byggts kommer strace att skapa en fil som parsern kommer att anvÀnda för att kontrollera kÀllkoden. Du kan starta analysen med kommandot

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

Utdata kommer att vara en kodad fil med resultaten, som du kan konvertera till ett av de format som stöds. Vi kommer att diskutera hur man arbetar med rapporter i nÀsta avsnitt.

Förutom att anvĂ€nda strace kan analys Ă€ven köras utifrĂ„n en fil compile_commands.json (JSON Compilation Database). MĂ„nga byggsystem lĂ„ter dig exportera kompilatorkommandon, eller sĂ„ kan du anvĂ€nda verktyget BJÖRN. I det hĂ€r fallet kan analysen startas med kommandot

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

Det bör noteras att analysatorn kĂ€nner igen den anvĂ€nda kompilatorn med namnet pĂ„ dess körbara fil. Om du fĂ„r felet "Inga kompileringsenheter hittades" nĂ€r du kontrollerar, försök att ange namnet pĂ„ din kompilator via parametern --kompilator eller –c:

pvs-studio-analyzer analyze -c MyCompiler

Detta kan behövas nÀr du korskompilerar och anvÀnder kompilatorer med icke-standardiserade körbara filnamn.

Förutom att köra i monitorlÀge kan du integrera analysatorn i ditt byggsystem eller IDE. Du kan hitta exempel pÄ projekt med redan konfigurerad integration pÄ GitHub i PVS_Studio-förrÄdet:

Mer detaljerade instruktioner om hur man genomför analysen finns nedan. Linux titta pÄ dokumentation.

Arbetar med rapporter

Efter att ha kontrollerat designen genererar analysatorn en kodad rapport. För att konvertera den till ett av de format som stöds bör du anvÀnda verktyget plog-omvandlare, som installeras tillsammans med PVS-Studio.

Verktyget stöder följande format:

  • xml - ett bekvĂ€mt format för ytterligare bearbetning av analysresultat, som stöds av plugin för SonarQube;
  • csv Ă€r ett textformat utformat för att representera tabelldata;
  • felfil - utdataformat gcc och clang;
  • tasklist - felformat som kan öppnas i QtCreator;
  • html – html-rapport med en kort beskrivning av analysresultaten;
  • fullhtml – html-rapport med analysresultat sorterade efter olika parametrar och kĂ€llkodsnavigering.

För att se rapporten Àr fullhtml-formatet mest praktiskt, eftersom det lÄter dig hoppa till kÀllkodsraden dÀr varningen intrÀffade. Följande kommando lÄter dig konvertera analysatorrapporten till detta format:

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

Efter att ha utfört kommandot kommer en katalog att skapas /sökvÀg/rapportkatalog, som kommer att innehÄlla rapportfilerna.

Var uppmÀrksam pÄ nyckeln -a. Det lÄter dig specificera vilka varningar som ska inkluderas i rapporten. Detta Àr praktiskt om det finns ett behov av att filtrera utsignalen frÄn analysatorn. OvanstÄende kommando genererar en rapport som endast innehÄller varningar frÄn den allmÀnna analysgruppen för den första och andra konfidensnivÄn (Hög О Medium).

Rapportexempel:

LÀr kÀnna den statiska analysatorn PVS-Studio vid utveckling av C++-program i miljön Linux

Vid klick i en cell Plats meddelanden kan du hoppa till motsvarande kodrad:

LÀr kÀnna den statiska analysatorn PVS-Studio vid utveckling av C++-program i miljön Linux

Klicka pÄ diagnostiknumret i kolumnen Koda kommer att öppna dokumentationen som beskriver denna diagnostik.

Analysatorundertryckning

NÀr du kontrollerar koden med en statisk analysator, Àr falska positiva eller helt enkelt oönskade meddelanden (brus) möjliga. PVS-Studio tillhandahÄller mekanismer för att undertrycka sÄdana varningar. För individuell undertryckning av larm kan du anvÀnda en av metoderna som beskrivs i dokumentationsavsnittet "Undertryckande av falsk varning".

Dessutom, nÀr man analyserar gammal kod, kan det vara nödvÀndigt att massivt undertrycka alla meddelanden. Som regel Àr detta nödvÀndigt för att endast kontrollera koden som lÀggs till i den befintliga kodbasen. För att göra detta, anvÀnd parametern undertrycka verktyg pvs-studio-analysator.

Du kan massundertrycka meddelanden i en rapport med följande kommando:

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

Information om undertryckta meddelanden lagras i en fil suppress_base.json, som ligger bredvid projektet. SÄdana meddelanden exkluderas frÄn rapporten vid efterföljande kontroller.

Denna mekanism beskrivs mer i detalj i dokumentationen. hÀr.

Slutsats

Detta var en kort introduktion till att anvÀnda PVS-Studio-analysatorn under LinuxJag hoppas att detta var till hjÀlp och besvarade nÄgra av dina vanligaste frÄgor. Du kan lÀsa mer om detta Àmne i dokumentationen. hÀr.

LÀr kÀnna den statiska analysatorn PVS-Studio vid utveckling av C++-program i miljön Linux

Om du vill dela den hÀr artikeln med en engelsktalande publik, anvÀnd gÀrna översÀttningslÀnken: Yuri Minaev. Komma igÄng med PVS-Studio Static Analyzer för C++-utveckling under Linux.

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster