¿Existe un buen sustituto de Valgrind para Windows?

3 minutos de lectura

avatar de usuario
Pato

Estaba investigando Valgrind para ayudar a mejorar mi codificación/depuración de C cuando descubrí que es solo para Linux. No tengo otra necesidad o interés en mover mi sistema operativo a Linux, así que me preguntaba si hay un programa igualmente bueno para Windows.

  • ¿Qué tipo de depuración está buscando hacer? Valgrind es un conjunto de herramientas bastante rico, y las respuestas a continuación apuntan en todo tipo de direcciones. Con énfasis en la depuración de pérdidas/asignaciones de memoria.

    – jakobengblom2

    28 de agosto de 2009 a las 8:43

  • Tal vez pueda probar el código en una máquina virtual Linux dentro de su Windows, justo cuando necesite verificarlo. puede compartir la carpeta de desarrollo entre la máquina virtual y no virtual. es decir, si el código es lo suficientemente portátil.

    – Liran Orevi

    1 de octubre de 2009 a las 9:27

¿Por qué no usar Valgrind + Wine para depurar su aplicación de Windows? Ver
http://wiki.winehq.org/Wine_and_Valgrind

(Chromium usa esto para verificar la versión de Windows en busca de errores de memoria; consulte build.chromium.org y observe las cataratas experimentales o de memoria, y busque vino).

También está Dr. Memory, consulte dynamorio.org/drmemory.html

  • Porque entonces no estaría depurando una aplicación de Windows, estaría depurando una aplicación de Linux.

    – John Dibling

    4 de febrero de 2010 a las 21:15

  • No es necesario volver a compilar en Wine. Simplemente transfiera su .exe y .pdb a una caja de Linux. Y no estarías depurando una aplicación de Linux; está depurando su aplicación de Windows exacta.

    – Dan Kegel

    14 de febrero de 2010 a las 3:42

  • Purificar: venerable pero aún útil, como lo demuestra cuántos cambios de propiedad corporativa ha sobrevivido.

    —Norman Ramsey

    5 de enero de 2009 a las 17:48

  • Insure ++ tarda una eternidad en instrumentar su código y una eternidad en ejecutar su código en tiempo de ejecución.

    – C. Johnson

    9 de agosto de 2010 a las 15:12

avatar de usuario
tgs_stdio

Para Visual C++, intente Detector visual de fugas. Cuando lo usé, detectó una pérdida de memoria de un new call y devolvió la línea real en el código fuente de la fuga. La última versión se puede encontrar en http://vld.codeplex.com/.

  • No parece funcionar para mí. Incluso traté de crear un proyecto simple que básicamente no hizo nada más que asignar algo de memoria y no liberarla. VLD no lo detectó. 😐

    – Synetech

    25 de agosto de 2010 a las 0:18

  • @Synetech inc. Tuve el mismo problema en VS2010… Usar la versión más reciente de VLD resolvió mi problema

    – relaxxxx

    7 abr 2011 a las 16:46

avatar de usuario
dmityugov

El entorno de desarrollo para Windows que está utilizando puede contener sus propias herramientas. Visual Studio, por ejemplo, le permite detectar y aislar fugas de memoria en tus programas

  • No parece funcionar para mí. Incluso traté de crear un proyecto simple que básicamente no hizo nada más que asignar algo de memoria y no liberarla. VLD no lo detectó. 😐

    – Synetech

    25 de agosto de 2010 a las 0:18

  • @Synetech inc. Tuve el mismo problema en VS2010… Usar la versión más reciente de VLD resolvió mi problema

    – relaxxxx

    7 abr 2011 a las 16:46

avatar de usuario
satbir

Me gustaría enumerar alguna herramienta, espero que sea útil.

Lee esto artículo para más detalles

  1. Purificar
  2. Comprobador de límites
  3. Coverity (básicamente es un analizador de código, pero detectará fugas de memoria en estática)
  4. Código de resplandor
  5. dmalloc
  6. ccmalloc
  7. NJAMD
  8. YAMD
  9. Valgrind
  10. mpatrol
  11. Seguro++

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad