Qual é o melhor detector de vazamento de memória livre para um programa C/C++ e suas DLLs de plug-in?[fechado]
-
09-06-2019 - |
Pergunta
Eu tenho um .exe e muitos módulos .dll de plug-in que o .exe carrega.(Eu tenho fonte para ambos.) Uma solução multiplataforma (com fonte) seria ideal, mas a plataforma pode ser restrita ao WinXP e Visual Studio (7.1/2003 no meu caso).
O detector de vazamento VS integrado fornece apenas a linha de onde new/malloc foi chamado, mas eu tenho um wrapper para alocações, portanto, um rastreamento de pilha simbólico completo seria melhor.
O detector também seria capaz de detectar vazamentos no .exe e nos módulos plug-in .dll que o acompanham.
Solução
Eu pessoalmente uso Detector visual de vazamento, embora possa causar grandes atrasos quando blocos grandes vazam (ele exibe o conteúdo de todo o bloco vazado).
Outras dicas
Se você não quiser recompilar (como exige o Visual Leak Detector), eu recomendaria WinDbg, que é poderoso e rápido (embora não seja tão fácil de usar quanto se poderia desejar).
Por outro lado, se você não quiser mexer com o WinDbg, você pode dar uma olhada em UMDH, que também é desenvolvido pela Microsoft e é mais fácil de aprender.
Dê uma olhada nestes links para saber mais sobre WinDbg, vazamentos de memória e gerenciamento de memória em geral:
- Detecção de vazamento de memória usando Windbg
- Detecção de vazamento de memória no MFC
- Comandos comuns do WinDbg (agrupados tematicamente)
- Corrupção de memória C/C++ e vazamentos de memória
- A referência de gerenciamento de memória
- Usando LeakDiag para depurar vazamentos de memória não gerenciados
- Pilha:Prazeres e dores
Tive boas experiências com Purificação Racional.Também ouvi coisas boas sobre Valgrind
Quanto a mim, uso o Deleaker para localizar vazamentos.Estou satisfeito.
Meu perfil de memória disponível gratuitamente MemPro permite comparar 2 instantâneos e fornece rastreamentos de pilha para todas as alocações.
Tentar Detector de vazamento de memória de Jochen Kalmbach no Projeto de Código.O URL da versão mais recente estava em algum lugar nos comentários da última vez que verifiquei.
Como vários amigos meus postaram, existem muitos detectores de vazamento gratuitos para C++.Tudo isso causará sobrecarga ao executar seu código, aproximadamente 20% mais lento.eu prefiro Detector visual de vazamento para Visual C++ 2008/2010/2012 , você pode baixar o código-fonte em - insira a descrição do link aqui .