Pergunta

Portanto, minha empresa usa um programa com muitos bugs chamado Rational Purify (como um plug-in do Microsoft Visual Developer Studio) para gerenciar vazamentos de memória.O programa foi projetado para permitir que você clique em um vazamento de memória depois de encontrá-lo e, em seguida, pule para a linha em que o vazamento ocorre.

Infelizmente, o Purify está com defeito e o Purify não irá para o local onde ocorreu o vazamento, apenas menciona a classe e o método em que o vazamento ocorre.Infelizmente, às vezes isso é tão útil quanto contratar um guia para ajudá-lo a caçar ursos e fazer com que ele aponte para a floresta e diga que há ursos lá.

Alguém com experiência no Purify tem alguma idéia de como posso resolver esse problema ou tem um bom manual para consultar?

Foi útil?

Solução

Geralmente você tem duas opções, uma exclui DLLs de módulos da instrumentação no Purify, isso ajuda algumas vezes.O segundo é obter o BoundsChecker, que compila a instrumentação do tempo muito mais lentamente, mas o nível de detalhe é uma ordem de magnitude melhor.

Geralmente usamos Purify no check-in, verificação de integridade e BoundsChecker quando sabemos que existe um bug/travamento.

BoundsChecker tem alguns recursos interessantes, como apenas arquivos de instrumento A.cpp e B.cpp, excluindo todo o resto.

Esteja ciente de que nenhum desses dois aplicativos funciona em sistemas operacionais de 64 bits e o BoundsChecker não será instalado em sistemas operacionais de 64 bits.Mais frustrante se você mudar para o desenvolvimento nativo de 64 bits com porta traseira de 32 bits!

Outras dicas

Purify é como um canivete suíço.Se você souber como usá-lo, obterá alguns resultados, não os melhores, mas ainda assim resultados.Caso contrário, ele travará, pois é apenas mais um programa em execução no Windows.

No final você vai precisar de muita paciência, reconstruções e um pouco de sorte.

O Purify vem com um script chamado ScanVSSolutionForPurifyPlus.pl que garantirá que os arquivos do seu projeto tenham todas as configurações corretas para que o Purify funcione corretamente.Se você ainda não o executou, experimente.

(Eu pessoalmente usei ScanVSSolutionForPurifyPlus.pl em uma solução grande e funcionou perfeitamente.Uma advertência:quando você dá o nome do seu .sln arquivo, talvez seja necessário fornecer o nome do caminho completo.)

Tem certeza de que possui compilação de depuração?Ou melhor, você tem todos os PDBs habilitados?Experimente WindDbg em seu executável e verifique com o comando !lmi o que está visível.

Todo o código está devidamente instrumentado?

Considere também usar algo como Detector visual de vazamento gratuito ou a ferramenta LeakDiag da Microsoft.

Usei o Purify há cerca de 5 anos.Foi realmente esquisito então.Eles continuaram prometendo consertar todos os bugs no ‘próximo lançamento’.No final, desistimos disso.Só podemos imaginar se eles usaram suas próprias ferramentas de controle de qualidade em seus produtos.Oh A ironia...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top