Mentor de Ferramentas: Detecção de Erros em Tempo de Execução Usando o Rational Purify e o Rational PurifyPlus (Windows)
Finalidade
Este mentor de ferramentas fornece uma visão geral de como usar o Rational Purify para localizar erros em tempo de execução nos programas Visual C/C++. Use-o durante a execução do Microsoft Windows.
O PurifyPlus é um produto da Rational que oferece a funcionalidade Purify.
Para saber mais sobre o Purify, leia o manual Getting Started da família de produtos PurifyPlus (versão para Windows).
Para obter informações passo a passo sobre como usar o Purify, consulte a Ajuda on-line do Purify.
Informações relacionadas no Rational Unified Process:
Visão Geral
O Purify detecta erros em tempo de execução, incluindo vazamentos de memória, tanto no seu próprio código quanto nos componentes usados pelo software, mesmo quando você não possui o código-fonte. Ele informa erros de memória como, por exemplo, erros de limites de matriz, acesso através de ponteiros oscilantes, leituras de memória não inicializadas, erros de alocação de memória e vazamentos de memória, para que você possa resolvê-los antes de ocasionarem danos. Se o Rational PureCoverage estiver instalado no sistema, o Purify também poderá informar em que grau o código foi testado para detectar erros.
Passos na Ferramenta
Para testar um programa usando o Purify, é necessário:
- Executar o programa com o Purify para coletar dados de erro e (opcionalmente) dados de cobertura
- Analisar os dados de erro do Purify
- Corrigir os erros e executar novamente o programa
Se tiver coletado dados de cobertura, para assegurar que você purificou todo o programa, é necessário:
- Analisar os dados de cobertura do Purify para localizar o código que não foi testado
1. Executar o programa com o Purify para coletar dados de erro e (opcionalmente) dados de cobertura 
O primeiro passo na purificação do código é executar o programa no Purify.
Se você estiver trabalhando no Microsoft Visual Studio, selecione primeiramente os itens de menu Purify > Engage Purify Integration. Se o PureCoverage estiver instalado no sistema, selecione também Purify > Collect Coverage Dataset, instruindo o Purify a monitorar a cobertura do código. Em seguida, execute o programa no Visual Studio como costuma fazer.
Se estiver usando o Purify como um programa independente, não integrado ao Visual Studio, execute o programa na interface de usuário do Purify selecionando File > Run.
O Purify faz a instrumentação de uma cópia do programa e de seus módulos associados, inserindo instruções para detectar erros e monitorar a cobertura, e depois inicia o programa. À medida que você testar o programa, o Purify exibirá uma janela Data Browser com uma guia Error View que contém diagnósticos detalhados sobre os erros em tempo de execução detectados por ele.
Quando você sair do programa, o Purify informará os vazamentos de memória. Você poderá especificar configurações adicionais para que o Purify informe também a memória e os grupos de armazenamento que estiverem sendo utilizados quando você sair do programa.
O Purify utiliza um nível de instrumentação padrão para cada componente, mas você poderá ignorar as configurações padrão a fim de concentrar-se em partes específicas do código. Você também poderá definir opções para controlar como o Purify tratará os dados de erro. Por exemplo, você poderá aumentar o tamanho das pilhas de chamada registrado para detectar erros e alocações a fim de apontar erros mais facilmente.
Dica: Além de usar o Purify interativamente, você poderá incorporá-lo aos scripts de teste, arquivos de instruções e arquivos batch para executar testes automatizados.
Para obter mais informações, procure os seguintes tópicos no índice da Ajuda on-line do Purify:
- instrumenting
- running programs
- powercheck
- scripts
2. Analisar os dados de erro do Purify 
O segundo passo na purificação do código é analisar os dados de erro do Purify.
Por padrão, a visão de erros exibe inicialmente apenas a primeira linha de cada mensagem. Esse formato condensado de resumo facilita o exame das mensagens de erro, a rápida identificação de erros graves e a avaliação do estado do programa. Você poderá expandir o resumo para ver informações de diagnóstico mais detalhadas.
Ao usar essas informações de visão de erros, você poderá identificar, compreender e eliminar erros de acesso à memória e vazamentos de memória difíceis de serem encontrados. Se os dados de depuração e reposicionamento estavam disponíveis quando foi feita a instrumentação do programa, você também poderá examinar o código-fonte. Como o Purify detecta erros de acesso no momento em que ocorrem, você poderá rastrear e eliminar esses erros facilmente.
Um programa extenso poderá gerar centenas de mensagens de erro. Por essa razão, o Purify fornece filtros para ocultas as mensagens para que você possa enfocar rapidamente apenas os erros mais graves.
Dica: Se tiver incorporado o Purify aos scripts de teste, arquivos de instruções e arquivos batch, você poderá salvar automaticamente as mensagens de erro em um arquivo de texto ASCII.
Para obter mais informações, procure os seguintes tópicos no índice da Ajuda on-line do Purify:
- scripts
- error messages
- error view
- filters
3. Corrigir os erros e executar novamente o programa 
O terceiro passo na purificação do código é corrigir os erros e executar novamente o programa.
Para corrigir os erros, clique duas vezes na linha em que cada erro ocorre. O Purify abrirá o código-fonte no editor, no local exato do erro, deixando-o pronto para correção.
Depois de corrigir e recompilar o programa, você poderá verificar sua correção executando novamente o programa atualizado e comparando os novos resultados com os da execução anterior. Repita o ciclo de instrumentação e execução, análise e correção até que o programa seja executado sem erros.
Você poderá usar a janela Navigator para alternar as execuções e manter controle de todas as execuções em que estiver trabalhando. Além disso, você também poderá salvar dados de visão de erros como um arquivo de dados do Purify a fim de compartilhá-lo com colegas que tenham o Purify.
Para obter mais informações, procure os seguintes tópicos no índice da Ajuda on-line do Purify:
4. Analisar os dados de cobertura do Purify para localizar o código que não foi testado 
Se tiver coletado dados de cobertura referentes às execuções do programa, você também poderá localizar as partes do código que não foram purificadas. Use essas informações para aprimorar a cobertura de teste a fim de localizar todos os erros do programa, onde quer que ocorram.
Quando você sair do programa, o Purify exibirá os dados de cobertura nas guias Module View, File View e Function List View da janela Data Browser. Essas guias mostram as informações como, por exemplo, o número de funções e linhas que os testes detectaram e deixaram de detectar, assim como a porcentagem das funções e linhas detectadas e não detectadas. Se os dados de depuração de linhas estiverem disponíveis e você tiver monitorado o código em nível de linha, você também poderá usar a janela Annotated Source para analisar a cobertura referente às funções linha por linha.
O Purify filtra automaticamente os dados de cobertura menos interessantes como, por exemplo, os dados das bibliotecas do sistema, antes de exibir os dados de cobertura. Você poderá criar os seus próprios filtros para ocultar dados adicionais que não deseje ver, para que possa concentrar-se no que é importante para a sua análise.
Por padrão, o Purify criará automaticamente uma entrada Auto Merge na janela Navigator para que você possa analisar facilmente a cobertura total do programa em várias execuções. Você também poderá mesclar execuções específicas para ver o efeito cumulativo das execuções selecionadas.
Quando achar pontos fracos na cobertura, execute novamente o programa e teste todas as partes importantes ou revise os arquivos de instruções ou os scripts de teste para fazer um trabalho mais completo. Agora, você pode ter certeza de que não há erros escondidos em algum lugar do código que você não tenha testado, aguardando para ocasionar problemas inesperados.
Dica: Você poderá usar a opção de comando /Coverage e outras opções relacionadas para coletar dados de cobertura com o Purify durante a execução de testes automatizados.
Para obter mais informações, procure os seguintes tópicos no índice da Ajuda on-line do Purify:
- command line options
- coverage data
Copyright
(c) 1987 - 2001 Rational Software Corporation
|