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.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a