Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: shephiroth en 29 de Enero de 2007, 12:14:33 AM

Título: Memory leaks
Publicado por: shephiroth en 29 de Enero de 2007, 12:14:33 AM
Buenas.

Al final el anterior problema pude solucionarlo revisando el codigo...pero conforme crece el proyecto aparecen nuevos memory leak y me es muy dificil encontrarlos.....

He probado los links que me disteis en el anterior post:
Cita de: Pogacha
http://www.codeguru.com/cpp/cpp/cpp_mfc/mem_tracking/article.php/c825
http://www.linuxjournal.com/article/6556
Este es del flipcode y la pagina no me responde, pero todavia esta en el cache de google:
http://209.85.165.104/search?q=cache:UZU-pTVuJjkJ:www.flipcode.com/tutorials/tut_memleak.shtml+memory+leaks+tracker+c%2B%2B&hl=es&gl=es&ct=clnk&cd=1
El primero preparado para un visual c++ 5 o quizas anterior y no consigo hacerlo rular en el visual net 2005.
El de linux journal esta interesante, el ccmalloc es bastante completo y creo q seria suficiente, pero no encuentro referencias para poderlo poner en mi proyecto.
En flipcode lo explican todo, pero el visual 2005 me da problemas a la hora de redefinir new y delete.

Ahora bien, aparte de solucionar mi problema, vosotros que utilizais?? algo comercial?? algo propio?? algo free?? O quizas es q cometo demasiados errores de codigo??
Título: Memory leaks
Publicado por: Elvis Enmanuel en 29 de Enero de 2007, 12:36:56 PM
El mejor de toda la historia es el memory manager de Paul Nettle :)

http://www.fx-world.org/wordpress/?p=15

ains
Título: Memory leaks
Publicado por: MrK en 29 de Enero de 2007, 12:55:30 PM
yo usaba el DUMA, http://duma.sourceforge.net/ , que se basa en el Electric Fence
(como ventaja no solo detecta memory leaks, como inconveniente no es tan
portable como el anteriormente mencionado).
Título: Memory leaks
Publicado por: vincent en 29 de Enero de 2007, 04:15:50 PM
Cita de: Elvis EnmanuelEl mejor de toda la historia es el memory manager de Paul Nettle :)

http://www.fx-world.org/wordpress/?p=15

ains

Este es el que utilizo yo. Va de fabula.
Título: Memory leaks
Publicado por: shephiroth en 29 de Enero de 2007, 04:57:43 PM
Hmmm....me he bajado el original de c++ del memory manager. Se ve bastante completo, y facil de meter en el proyecto. Lo he metido y me ha sacado 30 leaks xDD

Aprobechando que lo usais, me podeis explicar que es lo q significa cada cosa?? Veamos, en memleaks.log esta la siguiente cabecera:
Alloc.   Addr       Size       Addr       Size                        BreakOn BreakOn              
Number Reported   Reported    Actual     Actual     Unused    Method  Dealloc Realloc Allocated by

Por lo poco que me he imaginado addr/size reported/actual es lo mas importante. Pero tampoco tengo muy claro sacar de ahi como demonios consigo saber donde estan los leaks xDD

GRACIAS
Título: Memory leaks
Publicado por: Elvis Enmanuel en 29 de Enero de 2007, 10:48:20 PM
Este gestor de memoria te indica la línea y el fichero donde se produce, pero para conseguirlo debes añadir el #include "mmgr.h" en cada fichero (o en un include global para todos los ficheros de tu proyecto).

ains
Título: Memory leaks
Publicado por: shephiroth en 29 de Enero de 2007, 11:19:25 PM
Ha eso llego  :evil:  :evil:  :evil:

Mi pregunta era mas como interpretar el txt....pq hasta el momento me esta marcando TODOS los new y malloc, y no me creo q absolutamente todos esten mal.
Título: Memory leaks
Publicado por: Pogacha en 29 de Enero de 2007, 11:27:11 PM
Yo tambien me lo bajo y lo voy a probar ...
Título: Memory leaks
Publicado por: Elvis Enmanuel en 30 de Enero de 2007, 09:07:03 AM
El memory.log es configurable y puedes habilitar que te logee cada new/delete o no con la variable "alwaysLogAll". Hay un define "STRESS_TEST" que te la pone a true, aunque no recuerdo si en la implementación original venía habilitado o no :|

ains