Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Memory Leaks

Iniciado por misscelan, 03 de Diciembre de 2007, 04:43:43 PM

« anterior - próximo »

misscelan

Buenas,

Cuando escribes más de 15 líneas en c pues te encuentras con estos problemas. En linux he encontrado mtrace que hace más o menos lo que necesito pero me gustaría un programa que detectase memory leaks para windows para mingw.

¿Conocéis alguno?

Muchas gracias.

Un saludo.

Tei

yo usaba este:
http://libmss.sourceforge.net/manual.html

es transparente, usas malloc y free como normalmente. instalarlo es meter la linea del include.  y al ejecutar el programa se te genera un mss.log con los warning, y tal.

Un ejemplo (poco ilustrativo) del output.
mss.log
Es poco ilustrativo porque solo tengo 1 malloc, al usar el juego su propio sistema de administracion de memoria.


Astat

Yo siempre he usado el gestor de memoria de Paul Nettle (administrador del foro de la mitica flipcode):  

http://www.paulnettle.com/pub/FluidStudios/MemoryManagers/Fluid_Studios_Memory_Manager.zip

vincent

Cita de: "Astat"Yo siempre he usado el gestor de memoria de Paul Nettle (administrador del foro de la mitica flipcode):  

http://www.paulnettle.com/pub/FluidStudios/MemoryManagers/Fluid_Studios_Memory_Manager.zip

Yo también y siempre me ha ido muy bien.
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

ethernet

Cita de: "vincent"
Cita de: "Astat"Yo siempre he usado el gestor de memoria de Paul Nettle (administrador del foro de la mitica flipcode):  

http://www.paulnettle.com/pub/FluidStudios/MemoryManagers/Fluid_Studios_Memory_Manager.zip

Yo también y siempre me ha ido muy bien.

Hasta que lo usas con stl :)

Astat

CitarHasta que lo usas con stl

Para eso siempre tienes

#include "nommgr.h"
#include <vector>
#include "mmgr.h"

ethernet

Cita de: "Astat"
CitarHasta que lo usas con stl

Para eso siempre tienes

#include "nommgr.h"
#include <vector>
#include "mmgr.h"

claro, pero entonces no tienes control de leaks que es de lo que se trata.

vale, otra:

class pepe {
 void* operator new(size_t t);
};

(y no me vale la guarrada del include en medio del .h :))
otra más:

en multithread casca todo lo que quiere y más.

Es una buena librería, pero tiene unos problemas que hay que conocer muy bien antes de usarla.

Pogacha

Y tu que recomiendas ethy?

ethernet

Cita de: "Pogacha"Y tu que recomiendas ethy?

Yo no recomiendo nada porque solo he usado el que se está comentando y tuve muy malas experiencias por dos razones, una el tema de MT y la otra que las cabeceras estaban muy mal organizadas y se montó un pitote tremento entre stl, speedtree, etc...

Yo creo que esta es buena (o la que usan en quake) o cualquiera siempre que se sepa sus limitaciones porque no hay peor cosa que buscar un problema de temas de memoria.

Pogacha

Yo use la de fluids studios pero me encontre con los mensionados problemas y desistí de la idea.
No suelo tener demasiados problemas con memory leaks, pero cuando ocurren es un infierno encontrarlos. Seria bueno tener una ayuda en el tema.

¿Esta tiene algún problema?
http://libmss.sourceforge.net/manual.html

Pablo Zurita

Desde hace ya varios años que vengo usando el DevPartner, es un producto bastante caro para los que hacen esto por hobby, pero es una herramienta sumamente útil para cualquier persona que se dedica a esto a tiempo completo.

zheo

El Visual Leak Detector.
http://dmoulding.googlepages.com/vld

Lo malo es que es sólo para para Visual C++, pero es sencillo y funciona bastante bien.

Tei

Cita de: "zheo"El Visual Leak Detector.
http://dmoulding.googlepages.com/vld

Lo malo es que es sólo para para Visual C++, pero es sencillo y funciona bastante bien.

No hay problema si Visual C++ es un compilador estandar de C++. Pues puedes debugear leaks de memoria con una herramienta X, pero luego que realmente tu codigo esta pensado para compilarse con GCC y funcionar en Linux.  La libreria detectora de leaks no estara en el binario distribuido. Es solo una herramienta que se usa en el proceso. Por eso, aunque no es muy etico, se podria usar un detector de leaks "shareware" o "trial".
Y no añado mas.

zheo

Lo digo porque no se hasta qué punto el VLD puede utilizar extensiones del compilador VC++, y por ello podría ser incompatible con gcc/g++ por ejemplo






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.