[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linrad] Re: Memory leakage.



Lost memory is allocated when an object in C++ is created , but not released when the object is destroyed. This is usually performed by the destructor for the class if the class has been written properly. This results in increasing useless RAM utilization and eventually disk swapping, slowing everything down.
(hope I am not telling you things you already know.. :)  )

Richard

Leif Asbrink wrote:

Hi All,

When running valgrind on the current xlinrad I get the
following report on lost memory:

==8510== IN SUMMARY: 17 errors from 10 contexts (suppressed: 19 from 1)
==8510== ==8510== malloc/free: in use at exit: 24,056 bytes in 319 blocks.
==8510== malloc/free: 691 allocs, 372 frees, 290,094,732 bytes allocated.
==8510== ==8510== searching for pointers to 319 not-freed blocks.
==8510== checked 33,720,196 bytes.
==8510== ==8510== ==8510== 112 (8 direct, 104 indirect) bytes in 1 blocks are definitely lost in loss record 11 of 32
==8510==    at 0x401E98D: realloc (vg_replace_malloc.c:306)
==8510==    by 0x40A3A19: ??? (lcGeneric.c:191)
==8510==    by 0x40A4AF4: ??? (lcGeneric.c:755)
==8510==    by 0x40A6837: _XlcCreateLC (lcPubWrap.c:92)
==8510==    by 0x40223BA: _XlcDefaultLoader (lcDefConv.c:766)
==8510==    by 0x40AD655: _XlcDynamicLoad (XlcDL.c:425)
==8510==    by 0x407D4D8: _XOpenLC (lcWrap.c:296)
==8510==    by 0x407D7BD: _XrmInitParseInfo (lcWrap.c:371)
==8510==    by 0x4065440: ??? (Xrm.c:509)
==8510==    by 0x4067567: XrmGetStringDatabase (Xrm.c:1564)
==8510==    by 0x4049CB3: XGetDefault (GetDflt.c:174)
==8510==    by 0x43722FA: _XcursorGetDisplayInfo (in /usr/lib/libXcursor.so.1.0.2)
==8510== ==8510== ==8510== 14 bytes in 1 blocks are definitely lost in loss record 12 of 32
==8510==    at 0x401D422: malloc (vg_replace_malloc.c:149)
==8510==    by 0x406C291: XStringListToTextProperty (StrToText.c:67)
==8510==    by 0x80498A6: main (xmain.c:152)
==8510== ==8510== ==8510== 136 bytes in 2 blocks are definitely lost in loss record 17 of 32
==8510==    at 0x401E88E: calloc (vg_replace_malloc.c:279)
==8510==    by 0x400E348: (within /lib/ld-2.3.6.so)
==8510==    by 0x400E66B: _dl_allocate_tls (in /lib/ld-2.3.6.so)
==8510==    by 0x40FD510: pthread_create@xxxxxxxxxx (in /lib/tls/libpthread-2.3.6.so)
==8510==    by 0x80BEB2E: linrad_thread_create (xsys.c:380)
==8510== ==8510== ==8510== 272 bytes in 4 blocks are possibly lost in loss record 19 of 32
==8510==    at 0x401E88E: calloc (vg_replace_malloc.c:279)
==8510==    by 0x400E348: (within /lib/ld-2.3.6.so)
==8510==    by 0x400E66B: _dl_allocate_tls (in /lib/ld-2.3.6.so)
==8510==    by 0x40FD510: pthread_create@xxxxxxxxxx (in /lib/tls/libpthread-2.3.6.so)
==8510==    by 0x80BEB2E: linrad_thread_create (xsys.c:380)
==8510== ==8510== LEAK SUMMARY:
==8510==    definitely lost: 158 bytes in 4 blocks.
==8510==    indirectly lost: 104 bytes in 4 blocks.
==8510==      possibly lost: 272 bytes in 4 blocks.
==8510==    still reachable: 23,522 bytes in 307 blocks.
==8510==         suppressed: 0 bytes in 0 blocks.


What is the meaning of "lost memory" ? Is it a part of
memory space that will eventually be swapped to disk?
Presumably there is no owner to it, will it just accumulate until the next reboot ?

It seems that the problems essentially are caused by things inside X11 so I should probably not worry so much about it.

How do I find out if there are any problems with "lost memory" under X11, Windows or Linux terminal mode?

73

Leif / SM5BSZ


#############################################################
This message is sent to you because you are subscribed to
 the mailing list <linrad@xxxxxxxxxxxxxxxxxxxxx>.
To unsubscribe, E-mail to: <linrad-off@xxxxxxxxxxxxxxxxxxxxx>
To switch to the DIGEST mode, E-mail to <linrad-digest@xxxxxxxxxxxxxxxxxxxxx>
To switch to the INDEX mode, E-mail to <linrad-index@xxxxxxxxxxxxxxxxxxxxx>
Send administrative queries to  <linrad-request@xxxxxxxxxxxxxxxxxxxxx>


#############################################################
This message is sent to you because you are subscribed to
 the mailing list <linrad@xxxxxxxxxxxxxxxxxxxxx>.
To unsubscribe, E-mail to: <linrad-off@xxxxxxxxxxxxxxxxxxxxx>
To switch to the DIGEST mode, E-mail to <linrad-digest@xxxxxxxxxxxxxxxxxxxxx>
To switch to the INDEX mode, E-mail to <linrad-index@xxxxxxxxxxxxxxxxxxxxx>
Send administrative queries to  <linrad-request@xxxxxxxxxxxxxxxxxxxxx>

LINRADDARNIL