PVS-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. .
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-studioFör att installera PVS-Studio frÄn installationspaketet kan du anvÀnda gdebi-verktyget:
sudo gdebi pvs-studio-VERSION.debInstallationsprocessen beskrivs mer i detalj i "» 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 "".
Projektverifiering
Efter installation av analysatorn kan du börja kontrollera projekt. Det finns tvÄ huvudsakliga sÀtt att göra detta:
- SammanstÀllningsövervakning;
- 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 . 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 -- makeDet 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.logUtdata 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 . I det hÀr fallet kan analysen startas med kommandot
pvs-studio-analyzer analyze âf /path/to/compile_commands.jsonDet 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 MyCompilerDetta 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Ä i PVS_Studio-förrÄdet:
Mer detaljerade instruktioner om hur man genomför analysen finns nedan. Linux titta pÄ .
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_dirEfter 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:

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

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 "".
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.logInformation 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. .
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. .
Om du vill dela den hÀr artikeln med en engelsktalande publik, anvÀnd gÀrna översÀttningslÀnken: Yuri Minaev. .
KĂ€lla: will.com
