c - leak - valgrind tutorial ubuntu




Existe um bom substituto do Valgrind para o Windows? (20)

A biblioteca de teste de reforço pode detectar vazamentos de memória.

Eu estava olhando para Valgrind para ajudar a melhorar minha codificação / depuração C quando descobri que é apenas para Linux - não tenho outra necessidade ou interesse em mover meu sistema operacional para o Linux, então eu queria saber se há um programa igualmente bom para o Windows.


A melhor ferramenta que já usei foi o DevPartner BoundsChecker - não é grátis, mas tem um período de avaliação.




Em combinação com o Visual Studio eu geralmente uso http://vld.codeplex.com/ ou simplesmente _CrtDumpMemoryLeaks (), que é uma chamada win32 api. Ambos são nada extravagante, mas eles fazem o trabalho.


Estamos apenas concluindo uma ferramenta de verificação de segurança de memória para o Windows, que lida com o GCC e o Micrsoft Visual C (ainda sem o C ++), e estamos procurando testadores Beta.

EDITAR 12 de junho de 2011: Não mais beta, agora produção para GCC e Microsoft Visual Studio C.


Eu tenho amado o Memory Validator , de uma empresa chamada Software Verification.


Eu tive a chance de usar o Compuware DevPartner Studio no passado e isso foi muito bom, mas é bem caro. Uma solução mais barata poderia ser o GlowCode , eu apenas trabalhei com uma versão 5.xe, apesar de alguns problemas em anexar a um processo que eu precisei depurar, funcionou muito bem.



Há parte do Pageheap.exe das ferramentas de depuração para o Windows. É gratuito e é basicamente um alocador / desalocador de memória personalizado.

Consulte http://support.microsoft.com/kb/286470



Mais ou menos todos os Profilers incluem verificação de vazamentos de memória e mostrar a pilha quando a memória foi alocada.

Eu posso recomendar o Intels Parallel Inspector . Simples de usar e não é necessária recompilação. A versão experimental é executada por 30 dias.

GlowCode e AtromatedQA também incluem tais capacidades. Todos eles oferecem testes gratuitos.

O Compuware DevPartner (também conhecido como BoundsChecker) em Contrast precisa de uma recompilação "instrumentação" mais lenta e o aplicativo também é executado mais lentamente ao verificar erros. E o BoundsChecker não pode trabalhar com 64 Bits. Nós desistimos dessa ferramenta.


O Viusual Studio pode ajudar a detectar vazamentos de memória. Consulte Dicas e truques do Microsoft Visual C ++ -> seção "Vazamentos de memória". Veja também este post em SO

Embora o rastreamento real só seja possível com o Team Edtion do Visual Studio.


O ambiente de desenvolvimento para o Windows que você está usando pode conter suas próprias ferramentas. O Visual Studio, por exemplo, permite detectar e isolar vazamentos de memória em seus programas


Por que não usar o Valgrind + Wine para depurar seu aplicativo do Windows? Veja http://wiki.winehq.org/Wine_and_Valgrind

(O Chromium usa isso para checar a versão do Windows em busca de erros de memória; veja build.chromium.org e veja as cachoeiras experimentais ou de memória, e procure por vinhos.)

Há também o Dr. Memory, veja dynamorio.org/drmemory.html


Se você está desenvolvendo com o Borland / CodeGear / Embarcadero C ++ Builder, você pode usar o CodeGuard.




Você pode tentar o teste RuntimeChecker ot no teste do Purify .

Uma solução gratuita seria usar o seguinte código no Visual Studio:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

Basta escrever isso no topo de todos os seus arquivos cpp. Isso detectará vazamentos de memória de seu aplicativo ao interromper a execução de depuração e listá-los na janela de saída. Clicar duas vezes em uma linha de vazamentos de memória mostrará a linha onde a memória está alocada e nunca liberada. Isso pode ajudá-lo: http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml


eu gostaria de listar algumas ferramentas, a esperança será útil

leia este article para mais detalhes

  1. Purificar
  2. Verificador de limites
  3. Coverity (basicamente é um analisador de código, mas, ele pegará vazamento de memória na estática)
  4. Código Glow
  5. dmalloc
  6. ccmalloc
  7. NJAMD
  8. YAMD
  9. Valgrind
  10. mpatrol
  11. Segure ++






valgrind