
Este artigo mostrará como iniciar a análise de um projeto incorporado e como trabalhar com o relatório do analisador. O analisador PVS-Studio suporta vários compiladores para sistemas embarcados. A versão atual permite verificar projetos criados com um dos seguintes compiladores em Windows, Linux e macOS:
Instalação
O procedimento de instalação depende do sistema operacional usado em desenvolvimento. No Linux, você pode instalar o analisador a partir do repositório ou do pacote de instalação.
Por exemplo, em um sistema baseado no Debian:
wget -q -O - https:
ou
sudo gdebi pvs-studio-VERSION.deb
No macOS, você pode usar o
Homebrew para instalação e atualização:
brew install viva64/pvs-studio/pvs-studio brew upgrade pvs-studio
Outra opção - instalar a partir do pacote
dmg ou descompactar manualmente a partir do arquivo morto.
No Windows, você precisa usar o instalador:
Você pode fazer o download dos pacotes de instalação para cada sistema suportado e solicitar uma chave de avaliação, se necessário, na página "
Baixar e avaliar o PVS-Studio ".
Depois que a instalação estiver concluída, você precisará inserir a chave de licença. O artigo da documentação "
Como inserir a licença do PVS-Studio e qual é o próximo passo " descreve este processo em detalhes em relação a diferentes plataformas.
Verificando seu projeto
A verificação de projetos criados para sistemas embarcados é semelhante à verificação dos desenvolvidos para Windows, Linux ou macOS.
As opções disponíveis no Linux estão descritas no artigo "
Introdução ao PVS-Studio Static Analyzer para desenvolvimento de C ++ no Linux ". Lembre-se de que os projetos incorporados são compilados de forma cruzada e seu compilador pode ter um nome não padrão. Devido a isso, pode ser necessário especificá-lo ao iniciar a análise, o que você pode fazer por meio da chave da linha de comandos
–compiler ou
–c .
pvs-studio-analyzer analyze -c MyCompiler
É necessário usá-lo se o analisador não puder detectar o tipo de compilador, ou seja, se ele emitir o erro "Nenhuma unidade de compilação encontrada".
Como a plataforma de destino difere da plataforma de desenvolvimento devido à compilação cruzada, você provavelmente também precisará especificar a plataforma de destino por meio da chave
--platform , junto com o tipo de pré-processador (
--preprocessor ).
Plataformas suportadas:
win32, x64, linux32, linux64, macos, arm.Pré-processadores suportados:
gcc, clang, keil.No Linux, a plataforma
linux64 e o pré-processador
gcc são os padrões.
Se você estiver usando o Windows, poderá verificar seu projeto no modo de monitoramento do compilador. Para fazer isso, use o utilitário "
UI de monitoramento do compilador C e C ++ ", que acompanha o analisador. Para iniciar o monitoramento, acesse o menu
Ferramentas e escolha
Analisar seus arquivos ... Essa caixa de diálogo será aberta:
Clique no botão "
Iniciar monitoramento " e comece a criar seu projeto. Quando a compilação terminar, clique no botão "
Parar monitoramento " na janela de diálogo localizada no canto inferior direito da tela:
A janela principal do utilitário "
UI de Monitoramento do Compilador C e C ++ " permite visualizar os resultados da análise.
Além disso, é possível iniciar a análise na linha de comandos usando o utilitário CLMonitor. Aqui está o comando que iniciará o monitoramento:
CLMonitor.exe monitor
Após a construção, inicie-a novamente no modo de análise:
CLMonitor.exe analyze -l "<path>\out.plog"
O analisador irá verificar seu projeto e salvar os resultados no arquivo especificado através da tecla
-l .
Veja também "
Sistema de Monitoramento de Compilador no PVS-Studio ".
Trabalhando com relatórios
Para visualizar o relatório no Linux, você precisa converter o arquivo de log, gerado pelo analisador, em um dos formatos suportados. Use o utilitário
plog-converter para fazer isso. Por exemplo, você pode gerar um relatório HTML, que permite visualizar o código-fonte, com este comando:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
A conversão de relatório é descrita em mais detalhes no artigo "
Introdução ao PVS-Studio Static Analyzer para desenvolvimento de C ++ no Linux ".
A versão do Windows também possui um utilitário chamado
PlogConverter , que é semelhante ao seu equivalente no Linux:
PlogConverter.exe <path>\out.plog --renderTypes= FullHtml --analyzer=GA:1,2
ou
PlogConverter.exe D:\Projct\out.plog -t FullHtml -a GA:1,2
Você também pode visualizar relatórios no formato
plog com o utilitário "
UI de monitoramento do compilador C e C ++ " através do comando de menu
Arquivo-> Abrir registro do PVS-Studio ...Exemplo:
Se necessário, você pode exportar o relatório para um dos formatos suportados pelo menu
Arquivo do utilitário.
Padrão de codificação Misra
O PVS-Studio classifica seus avisos de acordo com
CWE e
SEI CERT , que funciona muito bem para testes de segurança estática (
SAST ) de aplicativos regulares. No entanto, os sistemas embarcados têm requisitos de segurança diferentes, cobertos por um padrão
MISRA especialmente desenvolvido. A versão atual do PVS-Studio suporta parcialmente MISRA C e MISRA C ++. Você pode ver a lista regularmente expandida de regras suportadas
aqui .
Usar regras MISRA ao verificar projetos não incorporados geralmente é uma má ideia, devido às especificidades do padrão. Na maioria dos casos, se o código não fosse inicialmente orientado para MISRA, a verificação resultaria em muitos falsos positivos e geralmente em avisos de ruído. Portanto, as regras MISRA estão desativadas por padrão.
Para ativar o MISRA no Linux, execute a análise com a tecla
-a e passe um parâmetro numérico, de acordo com o modo desejado. Este parâmetro é uma combinação de campos de bits:
-a [MODE], --analysis-mode [MODE] MODE defines the type of warnings: 1 - 64-bit errors; 2 - reserved; 4 - General Analysis; 8 - Micro-optimizations; 16 - Customers Specific Requests; 32 - MISRA. Modes can be combined by adding the values Default: 4
Exemplo (com regras GA e MISRA ativadas):
pvs-studio-analyzer analyze -a 36 -o /path/report.log
Além disso, você precisa informar ao
plog-converter para incluir avisos MISRA no relatório resultante:
plog-converter -a MISRA:1,2,3 -m misra ....
No Windows, você pode usar as configurações do utilitário "
UI de Monitoramento do Compilador C e C ++ ":
Consulte o artigo "
PVS-Studio: Suporte dos padrões de codificação MISRA C e MISRA C ++ " para saber mais sobre o suporte a MISRA.
Conclusão
Neste artigo, discutimos brevemente os recursos do analisador PVS-Studio para verificar projetos direcionados incorporados. Se você precisar de mais informações sobre o uso do analisador, recomendo que você consulte os seguintes artigos: