
Neste artigo, você aprenderá como executar uma verificação de projeto incorporado e como trabalhar com o relatório do analisador. O analisador PVS-Studio suporta vários compiladores para sistemas embarcados. Na versão atual, é possível verificar projetos ao criar com um dos seguintes compiladores para Windows, Linux e macOS:
Instalação
O procedimento de instalação depende do sistema operacional no qual você está desenvolvendo. No Linux, você pode instalar o analisador a partir do repositório ou do pacote de instalação.
Exemplo para sistemas baseados em Debian:
wget -q -O - https:
ou
sudo gdebi pvs-studio-VERSION.deb
Para o macOS, a instalação e atualização podem ser feitas no
Homebrew :
brew install viva64/pvs-studio/pvs-studio brew upgrade pvs-studio
A segunda opção é instalar o pacote do
dmg ou descompactá-lo manualmente do arquivo.
No Windows, a instalação é realizada usando o instalador:
Você pode fazer o download dos pacotes de instalação para todos os sistemas suportados e, se necessário, solicitar uma chave de avaliação na página "
Baixe e experimente o PVS-Studio ".
Após a instalação, digite a chave de licença. Você pode encontrar informações sobre como fazer isso em diferentes plataformas, na página de documentação "
Como inserir a licença PVS-Studio e o que fazer em seguida ".
Verificação do Projeto
A verificação do projeto para sistemas embarcados pode ser realizada da mesma maneira que no caso de desenvolvimento no Windows, Linux e macOS.
As opções de inicialização para Linux são discutidas no artigo "
Apresentando o analisador estático PVS-Studio ao desenvolver programas C ++ no ambiente Linux ". Lembre-se de que, como a compilação cruzada é usada para compilar sob incorporado, e o nome do compilador pode não ser padrão, pode ser necessário especificá-lo ao analisar o projeto. Para fazer isso, use a
opção de linha de comando
–compiler ou
–c :
pvs-studio-analyzer analyze -c MyCompiler
Use esse parâmetro quando o analisador não puder determinar o tipo de compilador usado, ou seja, quando o erro "Nenhuma unidade de compilação encontrada" for emitido.
Ao fazer a compilação cruzada, como a plataforma de destino é diferente daquela sob a qual o assembly ocorre, junto com o compilador, pode ser necessário especificar a plataforma de destino usando o parâmetro
--platform , bem como o tipo de pré-processador (
--preprocessor ).
Plataformas suportadas:
win32, x64, linux32, linux64, macos, arm.Pré-processadores suportados:
gcc, clang, keil.Por padrão, o Linux seleciona a plataforma
linux64 e o pré-processador
gcc .
Se você usa o Windows, pode verificar o projeto no modo de monitoramento de compilação. Para fazer isso, execute o utilitário "
UI de monitoramento do compilador C e C ++ ", instalado com o analisador. Para iniciar o monitoramento, vá para o menu
Ferramentas e clique em
Analisar seus arquivos ... Uma caixa de diálogo é aberta:
Clique no botão "
Iniciar monitoramento " e execute a compilação. Após a conclusão, clique no botão "
Parar monitoramento " na caixa de diálogo no canto inferior direito da tela:
O resultado do teste pode ser exibido na janela principal do utilitário "
UI do C e C ++ Compiler Monitoring UI ".
Você também pode executar a análise na linha de comando. Para isso, o utilitário CLMonitor é usado. Você pode iniciar o monitoramento com o comando:
CLMonitor.exe monitor
Após a montagem ser concluída, você deve executar o utilitário no modo de análise:
CLMonitor.exe analyze -l "<path>\out.plog"
O analisador verificará o projeto e salvará os resultados no arquivo especificado no parâmetro
-l .
Veja também a seção de documentação "
Sistema de Monitoramento de Compilação no PVS-Studio ".
Trabalhar com relatórios
Para visualizar o relatório no Linux, você precisa converter o arquivo obtido como resultado do analisador em um dos formatos suportados usando o utilitário
plog-converter . Você pode obter o relatório no formato HTML com a capacidade de visualizar o código-fonte com o seguinte comando:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
A conversão de relatórios é descrita em mais detalhes no artigo "
Familiaridade com o analisador estático PVS-Studio ao desenvolver programas C ++ no Linux ".
No Windows, também existe um utilitário
PlogConverter que permite converter arquivos de relatório de maneira semelhante:
PlogConverter.exe <path>\out.plog --renderTypes= FullHtml --analyzer=GA:1,2
ou
PlogConverter.exe D:\Projct\out.plog -t FullHtml -a GA:1,2
Além disso, um relatório no formato
plog pode ser visualizado usando o utilitário "
UI de monitoramento do compilador C e C ++ " através do menu
Arquivo-> Abrir registro do PVS-Studio ...Um exemplo:
Se necessário, deste utilitário, você pode exportar o relatório para um dos formatos suportados pelo menu
Arquivo .
Padrão MISRA
O PVS-Studio classifica os alertas de acordo com o
CWE e o
SEI CERT , adequados para testes de segurança estática (
SAST ) de aplicativos comuns. No entanto, os sistemas embarcados possuem requisitos de segurança ligeiramente diferentes, cobertos pelo padrão
MISRA especialmente desenvolvido. A versão atual do analisador suporta parte das regras do MISRA C e MISRA C ++, a lista de diagnósticos pode ser visualizada
aqui e está em constante expansão.
O uso de regras MISRA ao verificar projetos que não se destinam a incorporação é muitas vezes injustificado. Isso ocorre devido às especificidades do padrão. Na maioria dos casos, se o código não foi originalmente escrito com a expectativa de conformidade com MISRA, haverá muitos avisos falsos e inúteis durante a verificação. Portanto, as regras MISRA são desativadas por padrão.
Para ativar a análise MISRA no Linux, é necessário executar a análise com a opção
-a e passar um parâmetro numérico que define o modo necessário. 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 de lançamento (diagnóstico GA e MISRA incluído):
pvs-studio-analyzer analyze -a 36 -o /path/report.log
Ao usar o
conversor de plog , você também deve indicar que o diagnóstico MISRA deve ser
incluído no relatório:
plog-converter -a MISRA:1,2,3 -m misra ....
No Windows, você pode usar o diálogo de configurações do utilitário "
UI de Monitoramento do Compilador C e C ++ ":
Mais detalhes sobre o suporte ao MISRA estão descritos no artigo "
PVS-Studio: Suporte para os padrões de codificação MISRA C e MISRA C ++ ".
Conclusão
Neste artigo, analisamos os recursos do analisador PVS-Studio para testar projetos focados em sistemas embarcados. Se você precisar de informações mais detalhadas sobre como usar o analisador, recomendo a leitura dos seguintes artigos:

Se você deseja compartilhar este artigo com um público que fala inglês, use o link para a tradução: Yuri Minaev.
Usando o analisador estático PVS-Studio no desenvolvimento C e C ++ para sistemas embarcados