Estoy buscando la biblioteca de detección de fugas de memoria. Algo así como simplemente lo incluiría en el código fuente y luego debería comenzar a detectar. Los programas externos pueden ser buenos pero estaba buscando alguna biblioteca que pueda vincularse a ejecutable.
Esto estoy buscando Windows.Biblioteca de detección automática de fugas de memoria C++
Respuesta
Para mí esto fue por mucho tiempo la mejor herramienta: http://www.paulnettle.com/pub/FluidStudios/MemoryManagers/Fluid_Studios_Memory_Manager.zip basta con incluir el archivo de cabecera 1 y ya está con ella :)
Si está utilizando VC++, esa funcionalidad está integrada. Consulte Finding Memory Leaks Using the CRT Library para aplicaciones que no son MFC y Detecting memory leaks in MFC para aplicaciones MFC.
Visual Studio tiene dicha función en Windows. Ver http://msdn.microsoft.com/en-us/library/e5ewb1h3(v=VS.90).aspx. En linux no sé si existen tales cosas, pero valgrind es realmente bueno para encontrar todo tipo de problemas de memoria (no solo filtraciones, sino también lecturas no válidas, por ejemplo).
Puedo sugerir Visual Leak Detector, es mucho más fácil de usar que el Visual Studio incorporado.
Puede usar algunas técnicas en su código para detectar pérdidas de memoria. La forma más común y más fácil de detectar es definir un macro, DEBUG_NEW y usarlo, junto con macros predefinidos como __FILE__
y __LINE__
para localizar la pérdida de memoria en su código. Estas macros predefinidas le indican el archivo y el número de línea de pérdidas de memoria.
DEBUG_NEW es sólo una macro que por lo general se define como:
#define DEBUG_NEW new(__FILE__, __LINE__)
#define new DEBUG_NEW
Así que donde quiera que utiliza new
, también puede realizar un seguimiento del número de archivo y la línea que podría ser utilizado para localizar pérdida de memoria en su programa.
Y __FILE__
, __LINE__
son predefined macros que evalúan el nombre de archivo y el número de línea, respectivamente, donde los utiliza!
leer el siguiente artículo que explica la técnica de usar DEBUG_NEW con otras macros interesantes, muy bellamente:
A Cross-Platform Memory Leak Detector
De Wikpedia,
DEBUG_NEW se refiere a una técnica en la C++ para sobrecargar y/o redefinir el operador nuevo y eliminar del operador en orden a interceptar la asignación de memoria y llamadas de desasignación , y así depurar un programa para uso de memoria. A menudo implica la definición de una macro denominada DEBUG_NEW, y hace que se convierta en la nueva algo como nueva (_ ARCHIVO _, _ _ LINEA) para registrar la información del archivo/línea en asignación. Microsoft Visual C++ usa esta técnica en su Microsoft Foundation Classes. Hay algunas maneras de de extender este método para evitar usando la redefinición de macros mientras todavía puede mostrar la información de archivo/línea en algunas plataformas. Hay son muchas las limitaciones inherentes a este método .Se aplica solo a C++, y no puede detectar fugas de memoria mediante C funciones como malloc. Sin embargo, puede ser muy simple de usar y también muy rápido, en comparación con algunas soluciones de depurador de memoria más .
Además de lo anterior, yo puedo aconsejar unos buenos programas: ^) Como ejemplo? sería bueno usar un deleaker para Windows.
- 1. Visual C++ - Detección de fugas de memoria
- 2. Detección de fugas de memoria en nodejs
- 3. automatizado de detección de fugas de memoria en Java
- 4. G ++ herramienta de detección de fugas de memoria multiplataforma
- 5. Detección automática de dependencias C
- 6. Perfiles de uso de memoria Perl y detección de fugas?
- 7. Detección de fugas de memoria en el proyecto ActionScript-3
- 8. La detección de la memoria de fugas mediante programación
- 9. memoria Valgrind C++ fugas
- 10. C++ detección automática de argumentos de plantilla?
- 11. Detectores de fugas de memoria para C?
- 12. C# detección automática de configuraciones proxy
- 13. detección automática de desbordamiento en C++?
- 14. ¿Detecta fugas de memoria en programas C?
- 15. C# Fugas de memoria basadas en eventos
- 16. Fugas de memoria en C# WPF
- 17. Fugas de memoria detectadas
- 18. Fugas de memoria WPF
- 19. Fugas de memoria usando socket.io
- 20. Herramienta para detectar fugas de memoria
- 21. Formas de evitar fugas de memoria en C/C++
- 22. Fugas de memoria de Python
- 23. Herramientas de detección de fuga de memoria
- 24. Fugas de memoria en .NET
- 25. CodeMirror - detección automática de idioma
- 26. C++ FFT Beat detección de la biblioteca?
- 27. ¿Cómo probar las fugas de memoria?
- 28. Fugas de memoria - conjuntos de STL
- 29. ¿Cómo evitar fugas de memoria?
- 30. Buen perfil de memoria, detección de fugas y errores para Windows
+1 de mi parte. Esta es una de mis formas favoritas de detectar fugas, pero mantener una lista de direcciones asignadas y verificarlas contra la dirección que se envía para su eliminación en cada eliminación es incentivo de rendimiento (O (n) = nlog (n)). Es importante mencionar aquí , para usar la técnica solo en compilaciones de depuración y no en versiones de lanzamiento. –
@ Alles: pensé que era obvio que esta técnica debería usarse solo en la construcción de depuración, ya que el nombre de la macro que elegí (o que usualmente elegí) es 'DEBUG_NEW'. – Nawaz
Solo una mención explícita de lo mismo. Tienes mi +1 de todos modos :) No pude ver ningún unicornio como otro día ... –