
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: