PVS-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 можно разными способами, в зависимости от типа дистрибутива. Наиболее удобный и предпочтительный способ – использование репозитория: так это позволяет автоматически обновлять анализатор при выходе новых версий. Второй вариант – использовать установочный пакет, который можно скачать .
Команды, которые необходимо выполнить для установки, зависят от дистрибутива 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-studioPer instal·lar PVS-Studio des d'un paquet d'instal·lació, podeu utilitzar la utilitat gdebi:
sudo gdebi pvs-studio-VERSION.debEl procés d'instal·lació es descriu amb més detall a la secció "» документации. Там же вы можете найти информацию о системах, не основанных на 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 "".
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:
- Seguiment de la compilació;
- Executeu durant el procés de compilació directament des del sistema de compilació.
Рассмотрим сначала первый способ. Чтобы запустить мониторинг под Linux, понадобится утилита . 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 -- makeAquest 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.logLa 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 . En aquest cas, podeu iniciar l'anàlisi amb l'ordre
pvs-studio-analyzer analyze –f /path/to/compile_commands.jsonCal 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 MyCompilerAixò 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 al repositori PVS_Studio:
Более подробную инструкцию по запуску анализа под Linux смотрите в .
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_dirDespré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:

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

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ó "".
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.logLa 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ó .
Conclusió
Это было краткое введение в использование анализатора PVS-Studio под Linux. Надеюсь, оно было полезным и ответило на наиболее часто возникающие вопросы. Более подробно о теме статьи вы можете прочитать в документации .
Si voleu compartir aquest article amb un públic de parla anglesa, utilitzeu l'enllaç de traducció: Yuri Minaev. .
Font: www.habr.com
