A mi una vez me paso que me tiraba ese leak, prácticamente idéntico, lo que
habia pasado es que metí en un contenedor de la stl un puntero a una clase
derivada cuyo padre no tenia el destructor virtual, es una boludes pero me
costo encontrarlo porque el leak era, según decía el valgrind en la stl. Por
ahí no sea ese tu problema pero es lo que puedo aportar...
Cristian.
----- Mensaje original ----
De: Francisco Dibar <[EMAIL PROTECTED]>
Para: programacion <[email protected]>
Enviado: martes 6 de noviembre de 2007, 19:06:47
Asunto: [Prog] valgrind stl leaks
hola,
valgrind me esta encontrando memory leaks debido a los containers de la stl.
segun tengo entendido, con setear GLIBCXX_FORCE_NEW=1 en el makefile, la
memoria de los containers de la stl es devuelta al so, sin embargo con o sin
setearla me da los mismos resultados.
se les ocurre algo que pueda probar?
tambien probe seteando esa variable como de entorno, con export.
esto es lo que me devuelve:
==1552== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 19 from 1)
==1552== malloc/free: in use at exit: 8,544 bytes in 2 blocks.
==1552== malloc/free: 25 allocs, 23 frees, 9,257 bytes allocated.
==1552== For counts of detected errors, rerun with: -v
==1552== searching for pointers to 2 not-freed blocks.
==1552== checked 125,512 bytes.
==1552==
==1552== 352 bytes in 1 blocks are still reachable in loss record 1 of 2
==1552== at 0x4022765: malloc (vg_replace_malloc.c:149)
==1552== by 0x41D062E: (within /lib/libc-
2.6.1.so)
==1552== by 0x41D2BEB: fopen64 (in /lib/libc-2.6.1.so)
==1552== by 0x410CAAE: std::__basic_file<char>::open(char const*,
std::_Ios_Openmode, int) (in /usr/lib/libstdc++.so.6.0.9)
==1552== by 0x40B516D: std::basic_filebuf<char, std::char_traits<char>
>::open(char const*, std::_Ios_Openmode) (in /usr/lib/libstdc++.so.6.0.9)
==1552== by 0x40B52F5: std::basic_ofstream<char, std::char_traits<char>
>::open(char const*, std::_Ios_Openmode) (in /usr/lib/libstdc++.so.6.0.9)
==1552== by 0x8050810: Log::Log(std::string const&, Callback*, Mutex*)
(RailwaySimulator.h:22)
==1552== by 0x8051177: RailwaySimulator::RailwaySimulator(char const*, char
const*, Callback*) (RailwaySimulator.h
:49)
==1552== by 0x804FFDD: main (server_main.cpp:41)
==1552==
==1552==
==1552== 8,192 bytes in 1 blocks are definitely lost in loss record 2 of 2
==1552== at 0x4022B9C: operator new[](unsigned) (vg_replace_malloc.c:195)
==1552== by 0x40B17FB: std::basic_filebuf<char, std::char_traits<char>
>::_M_allocate_internal_buffer() (in /usr/lib/libstdc++.so.6.0.9)
==1552== by 0x40B5181: std::basic_filebuf<char, std::char_traits<char>
>::open(char const*, std::_Ios_Openmode) (in /usr/lib/libstdc++.so.6.0.9)
==1552== by 0x40B52F5: std::basic_ofstream<char, std::char_traits<char>
>::open(char const*, std::_Ios_Openmode) (in /usr/lib/libstdc++.so.6.0.9)
==1552== by 0x8050810: Log::Log(std::string const&, Callback*, Mutex*) (
RailwaySimulator.h:22)
==1552== by 0x8051177: RailwaySimulator::RailwaySimulator(char const*, char
const*, Callback*) (RailwaySimulator.h:49)
==1552== by 0x804FFDD: main (server_main.cpp:41)
==1552==
==1552== LEAK SUMMARY:
==1552== definitely lost: 8,192 bytes in 1 blocks.
==1552== possibly lost: 0 bytes in 0 blocks.
==1552== still reachable: 352 bytes in 1 blocks.
==1552== suppressed: 0 bytes in 0 blocks.
gracias.
Compartí video en la ventana de tus mensajes (y también tus fotos de
Flickr).
Usá el nuevo Yahoo! Messenger versión Beta. http://ar.beta.messenger.yahoo.com/_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion