
O PVS-Studio suporta análise de projetos em C, C ++, C # e Java. Você pode usar o analisador nos sistemas Windows, Linux e macOS. Esta postagem se concentrará na análise de código escrito em C e C ++ em um ambiente Linux.
Instalação
Existem várias maneiras de instalar o PVS-Studio no Linux, dependendo do tipo de distribuição. A maneira mais conveniente e preferida é usar o repositório: isso permite atualizar automaticamente o analisador quando novas versões são lançadas. A segunda opção é usar o pacote de instalação, que pode ser baixado
aqui .
Os comandos que você deve concluir para instalar dependem da distribuição do Linux que você está usando. Por exemplo, para sistemas baseados no Debian, a instalação a partir do repositório é semelhante a esta:
wget -q -O - https:
Para instalar o PVS-Studio a partir do pacote de instalação, você pode usar o utilitário gdebi:
sudo gdebi pvs-studio-VERSION.deb
O processo de instalação é descrito em mais detalhes na seção "
Instalando e atualizando o PVS-Studio no Linux " da documentação. Você também pode encontrar informações sobre sistemas não baseados no Debian lá.
Após a instalação, você precisa inserir os dados da licença. Para fazer isso, use o comando
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]
Onde
NAME e
KEY são o nome para o qual a licença está registrada e a chave de licença. O parâmetro
–o opcional permite especificar o caminho pelo qual o arquivo de licença será gerado. Por padrão, ele é armazenado no diretório
~ / .config / PVS-Studio / .
Você pode obter a chave de avaliação na página "
Baixe e experimente o PVS-Studio ".
Verificação do Projeto
Depois de instalar o analisador, você pode começar a verificar os projetos. Existem duas maneiras principais de fazer isso:
- Monitoramento de compilação;
- Iniciando durante o processo de montagem diretamente do sistema de montagem.
Vamos considerar o primeiro método primeiro. Para iniciar o monitoramento no Linux, você precisará do utilitário
strace . O analisador o utiliza para coletar informações sobre quais processos foram iniciados durante a montagem do projeto.
O lançamento é realizado pelo seguinte comando:
pvs-studio-analyzer trace -- make
Este exemplo usa build com make, mas qualquer outro comando usado para iniciar a construção pode estar no lugar de make. Os parâmetros da linha de comando podem ser passados para ele da maneira usual.
Após a montagem, o strace criará um arquivo que o analisador usará para verificar o código-fonte. Você pode executar a análise com o comando
pvs-studio-analyzer analyze -o /path/to/project.log
A saída será um arquivo codificado com os resultados, que você pode converter para um dos formatos suportados. Consideraremos trabalhar com relatórios na próxima seção.
Além de usar o strace, a análise também pode ser executada com base no arquivo
compile_commands.json (JSON Compilation Database). Muitos sistemas de compilação permitem exportar comandos de chamada do compilador ou você pode usar o utilitário
BEAR para isso. Nesse caso, você pode executar a análise com o comando
pvs-studio-analyzer analyze –f /path/to/compile_commands.json
Deve-se notar que o analisador reconhece o compilador usado pelo nome do seu arquivo executável. Se durante a verificação você receber o erro "Nenhuma unidade de compilação encontrada", tente especificar o nome do seu compilador através do parâmetro
–compiler ou
–c :
pvs-studio-analyzer analyze -c MyCompiler
Isso pode ser necessário ao compilar e usar compiladores com nomes de arquivos executáveis não padrão.
Além das ativações no modo de monitoramento, você pode integrar o analisador ao seu sistema de montagem ou IDE. Você pode encontrar exemplos de projetos com integração já configurada no
GitHub no repositório PVS_Studio:
Para obter instruções mais detalhadas sobre a execução de análises no Linux, consulte a
documentação .
Trabalhar com relatórios
Após verificar o projeto, o analisador cria um relatório codificado. Para convertê-lo em um dos formatos suportados, use o utilitário
plog-converter , instalado junto com o PVS-Studio.
O utilitário suporta os seguintes formatos:
- xml - um formato conveniente para processamento adicional dos resultados da análise, suportado pelo plugin do SonarQube;
- csv é um formato de texto para apresentar dados tabulares;
- errorfile - formato de saída para gcc e clang;
- tasklist - formato de erro que pode ser aberto no QtCreator;
- html - relatório html com uma breve descrição dos resultados da análise;
- fullhtml - relatório html com classificação dos resultados da análise por vários parâmetros e navegação pelo código fonte.
O formato fullhtml é o mais conveniente para exibir o relatório, pois permite acessar a linha do código-fonte na qual o aviso ocorreu. O comando a seguir permite converter o relatório do analisador para este formato:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
Após a execução do comando, o diretório
/ path / report_dir será criado, no qual os arquivos do relatório estarão.
Observe a opção
-a . Permite especificar quais avisos devem ser incluídos no relatório. Isso é conveniente se você precisar filtrar a saída do analisador. A equipe acima criará um relatório que conterá apenas avisos do grupo de análise geral do primeiro e do segundo níveis de confiança (
Alto e
Médio ).
Exemplo de relatório:
Ao clicar na célula
Localização da mensagem, você pode ir para a linha de código correspondente:
Clicar no número de diagnóstico na coluna
Código abrirá a documentação que descreve esse diagnóstico.
Supressão de resposta do analisador
Ao verificar o código com um analisador estático, são possíveis falsos positivos ou simplesmente mensagens indesejadas (ruído). O PVS-Studio fornece mecanismos para suprimir esses avisos. Para suprimir alarmes individualmente, você pode usar um dos métodos descritos na seção de documentação "
Suprimindo alertas falsos ".
Além disso, ao analisar o código antigo, pode ser necessário suprimir massivamente todas as mensagens. Como regra, isso é necessário para verificar apenas o código adicionado à base de código existente. Para isso, é utilizado o parâmetro
suprimir do utilitário
pvs-studio-analyzer .
Você pode suprimir as mensagens em um relatório em massa usando o seguinte comando:
pvs-studio-analyzer suppress /path/to/report.log
As informações sobre mensagens suprimidas são armazenadas no arquivo
suppress_base.json , que fica ao lado do projeto. Essas mensagens são excluídas do relatório durante as inspeções subsequentes.
Esse mecanismo é descrito em mais detalhes na documentação
aqui .
Conclusão
Esta foi uma breve introdução ao uso do analisador PVS-Studio para Linux. Espero que tenha sido útil e tenha respondido às perguntas mais frequentes. Você pode ler mais sobre o tópico do artigo na documentação
aqui .

Se você deseja compartilhar este artigo com um público que fala inglês, use o link para a tradução: Yuri Minaev.
Introdução ao Analisador Estático PVS-Studio para Desenvolvimento C ++ no Linux .