Familiaritzar-se amb l'analitzador estàtic PVS-Studio en el desenvolupament de programes C++ en l'entorn Linux

Familiaritzar-se amb l'analitzador estàtic PVS-Studio en el desenvolupament de programes C++ en l'entorn LinuxPVS-Studio admet l'anàlisi de projectes escrits en C, C++, C# i Java. L'analitzador es pot utilitzar en sistemes Windows, Linux и macOSAquest article tractarà l'anàlisi de codi escrit en C i C++ en l'entorn Linux.

Instal · lació

Установить PVS-Studio под Linux можно разными способами, в зависимости от типа дистрибутива. Наиболее удобный и предпочтительный способ – использование репозитория: так это позволяет автоматически обновлять анализатор при выходе новых версий. Второй вариант – использовать установочный пакет, который можно скачать aquí.

Команды, которые необходимо выполнить для установки, зависят от дистрибутива Linux, который вы используете. Например, для систем, основанных на Debian, установка из репозитория выглядит так:

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

Per instal·lar PVS-Studio des d'un paquet d'instal·lació, podeu utilitzar la utilitat gdebi:

sudo gdebi pvs-studio-VERSION.deb

El procés d'instal·lació es descriu amb més detall a la secció "Установка и обновление PVS-Studio в Linux» документации. Там же вы можете найти информацию о системах, не основанных на Debian.

Després de la instal·lació, heu d'introduir la informació de la llicència. Per fer-ho, utilitzeu l'ordre

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

On NOM и KEY – el nom amb què està registrada la llicència i la clau de llicència. Paràmetre opcional -o us permet especificar la ruta on es generarà el fitxer de llicència. Per defecte s'emmagatzema al directori ~/.config/PVS-Studio/.

Podeu obtenir la clau de prova a la pàgina "Baixeu i proveu PVS-Studio".

Verificació del projecte

Després d'instal·lar l'analitzador, podeu començar a comprovar els projectes. Hi ha dues maneres principals de fer-ho:

  1. Seguiment de la compilació;
  2. Executeu durant el procés de compilació directament des del sistema de compilació.

Рассмотрим сначала первый способ. Чтобы запустить мониторинг под Linux, понадобится утилита strace. L'analitzador l'utilitza per recopilar informació sobre quins processos es van iniciar durant la construcció del projecte.

El llançament es realitza amb la següent comanda:

pvs-studio-analyzer trace -- make

Aquest exemple utilitza make per construir, però la trucada make es pot substituir per qualsevol altra ordre que utilitzeu per iniciar la compilació. Els paràmetres de la línia d'ordres se li poden passar de la manera habitual.

Un cop construït, strace crearà un fitxer que l'analitzador utilitzarà per comprovar el codi font. Podeu iniciar l'anàlisi amb l'ordre

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

La sortida serà un fitxer codificat amb els resultats, que podeu convertir a un dels formats compatibles. Veurem treballar amb informes a la següent secció.

A més d'utilitzar Strace, l'anàlisi també es pot executar a partir d'un fitxer compile_commands.json (Base de dades de compilació JSON). Molts sistemes de compilació us permeten exportar ordres de trucada del compilador o podeu utilitzar la utilitat SUPORTAR. En aquest cas, podeu iniciar l'anàlisi amb l'ordre

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

Cal tenir en compte que l'analitzador reconeix el compilador utilitzat pel nom del seu fitxer executable. Si rebeu l'error "No s'han trobat unitats de compilació" en comprovar-ho, proveu d'especificar el nom del vostre compilador mitjançant el paràmetre - compilador o –c:

pvs-studio-analyzer analyze -c MyCompiler

Això pot ser necessari quan es compilen i s'utilitzen compiladors amb noms de fitxer executables no estàndard.

A més d'executar-se en mode de supervisió, podeu integrar l'analitzador al vostre sistema de compilació o IDE. Es poden trobar exemples de projectes amb integració ja configurada a GitHub al repositori PVS_Studio:

Более подробную инструкцию по запуску анализа под Linux смотрите в documentació.

Treball amb informes

Després de comprovar el disseny, l'analitzador genera un informe codificat. Per convertir-lo a un dels formats compatibles, hauríeu d'utilitzar la utilitat Plog-conversor, que s'instal·la amb PVS-Studio.

La utilitat admet els formats següents:

  • xml: un format convenient per al processament addicional dels resultats de l'anàlisi, compatible amb un connector per a SonarQube;
  • csv: format de text destinat a presentar dades tabulars;
  • fitxer d'errors: format de sortida gcc i clang;
  • llista de tasques: format d'error que es pot obrir a QtCreator;
  • html - informe html amb una breu descripció dels resultats de l'anàlisi;
  • fullhtml: informe html amb classificació dels resultats de l'anàlisi per diferents paràmetres i navegació pel codi font.

El format fullhtml és més convenient per visualitzar l'informe, ja que permet anar a la línia del codi font on s'ha produït l'avís. L'ordre següent us permet convertir l'informe de l'analitzador a aquest format:

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

Després d'executar l'ordre, es crearà un directori /camí/dir_informe, que contindrà els fitxers d'informe.

Presta atenció a la clau -a. Permet especificar quins avisos s'han d'incloure a l'informe. Això és convenient si cal filtrar la sortida de l'analitzador. L'ordre anterior crearà un informe que només contindrà avisos del grup d'anàlisi general del primer i segon nivells de confiança (alt и mitjà).

Informe de mostra:

Familiaritzar-se amb l'analitzador estàtic PVS-Studio en el desenvolupament de programes C++ en l'entorn Linux

Fent clic en una cel·la Ubicació missatges, podeu saltar a la línia de codi corresponent:

Familiaritzar-se amb l'analitzador estàtic PVS-Studio en el desenvolupament de programes C++ en l'entorn Linux

Feu clic al número de diagnòstic de la columna codi obrirà la documentació que descriu aquest diagnòstic.

Supressió dels disparadors de l'analitzador

En comprovar el codi amb un analitzador estàtic, són possibles falsos positius o simplement missatges no desitjats (soroll). PVS-Studio proporciona mecanismes per suprimir aquests avisos. Per suprimir els disparadors individualment, podeu utilitzar un dels mètodes descrits a la secció de documentació "Supressió de falses alertes".

A més, quan s'analitza el codi antic, pot ser necessari suprimir massivament tots els missatges. Normalment, això és necessari per comprovar només el codi que s'afegeix a la base de codi existent. Per fer-ho, utilitzeu el paràmetre suprimir serveis públics pvs-studio-analitzador.

Podeu suprimir massivament missatges en un informe amb l'ordre següent:

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

La informació sobre els missatges suprimits s'emmagatzema en un fitxer suppress_base.json, que es troba al costat del projecte. Aquests missatges s'exclouen de l'informe durant les comprovacions posteriors.

Aquest mecanisme es descriu amb més detall a la documentació aquí.

Conclusió

Это было краткое введение в использование анализатора PVS-Studio под Linux. Надеюсь, оно было полезным и ответило на наиболее часто возникающие вопросы. Более подробно о теме статьи вы можете прочитать в документации aquí.

Familiaritzar-se amb l'analitzador estàtic PVS-Studio en el desenvolupament de programes C++ en l'entorn Linux

Si voleu compartir aquest article amb un públic de parla anglesa, utilitzeu l'enllaç de traducció: Yuri Minaev. Getting Started with the PVS-Studio Static Analyzer for C++ Development under Linux.

Font: www.habr.com

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster