|
From: | Adam Fedor |
Subject: | Re: Use of valgrinder on GNUstep |
Date: | Sun, 20 Jul 2003 20:47:47 -0600 |
User-agent: | Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.1) Gecko/20020905 |
Fred Kiefer wrote:
I did run a few GNUstep applications under valgrind control and was surprised how few memeory leaks showed up. I solved some of them and some looked like valgrind has a bit of a problem with our object handling, but there are a few other cases where I cannot make any progress. Perhaps someone with a bit more understanding of libobjc could have a look?.==5172== 212 bytes in 1 blocks are definitely lost in loss record 50 of 90 ==5172== at 0x40163B5B: calloc (vg_clientfuncs.c:245) ==5172== by 0x406A4D6B: objc_calloc (in /usr/lib/libobjc.so.1.0.0)==5172== by 0x406A6C00: __objc_register_instance_methods_to_class (in /usr/lib/libobjc.so.1.0.0)
Looks like in the runtime, a list is allocated to hold class methods but isn't dealocated if there aren't any.
==5172== 3381 bytes in 221 blocks are definitely lost in loss record 83 of 90==5172== at 0x401636E3: malloc (vg_clientfuncs.c:103) ==5172== by 0x406A4BE4: objc_malloc (in /usr/lib/libobjc.so.1.0.0)==5172== by 0x406A73E9: __sel_register_typed_name (in /usr/lib/libobjc.so.1.0.0) ==5172== by 0x406A75EB: sel_register_typed_name (in /usr/lib/libobjc.so.1.0.0)
Harder to figure out without looking deeper. The code looks ok. How does it know the bytes are lost? Does that mean they aren't referenced anywhere?
[Prev in Thread] | Current Thread | [Next in Thread] |